Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #models.py
- class Page(MPTTModel):
- title = models.CharField(max_length=255, verbose_name=_('Title'), help_text=_('Page\'s title.'))
- class Style(models.Model):
- title = models.CharField(max_length=255, verbose_name=_('Title'))
- pages = models.ManyToManyField(Page, through='StyleRelationship')
- class StyleRelationship(models.Model):
- page = models.ForeignKey(Page, verbose_name=_('Page'))
- style = models.ForeignKey(Style, verbose_name=_('Style'))
- ordering = models.IntegerField(default=0, verbose_name=_('Ordering'))
- #forms.py
- class StyleForm(forms.ModelForm):
- class Meta:
- model = Style
- #views.py
- def new_style(request, project_id):
- try:
- project = Project.objects.get(pk = project_id)
- except Project.DoesNotExist:
- raise Http404
- if request.method == 'POST':
- style_form = StyleForm(request.POST)
- if style_form.is_valid():
- style = style_form.save()
- return redirect('style', project_id, style.pk)
- else:
- style_form = StyleForm()
- context = {
- 'project': project,
- 'projects_for_navigation': Project.objects.all(),
- 'styles_for_navigation': Style.objects.all().filter(project = project),
- 'style_form': style_form,
- }
- template = 'admin/styles/new_style.html'
- return render_to_response(template, context, context_instance=RequestContext(request))
- #new_style.html
- <form action="" method="POST">
- <fieldset>
- <legend>{% trans 'New Style' %}</legend>
- {% csrf_token %}
- {% for field in style_form %}
- <p>{{ field.errors }}</p>
- {% endfor %}
- <input type="hidden" name="project" value="{{ project.pk }}">
- <p><label for="id_title">{{ style_form.title.label }}:</label> {{ style_form.title }}</p>
- <p><label for="id_code">{{ style_form.code.label }}:</label> {{ style_form.code }}</p>
- <p><label for="id_pages">{{ style_form.pages.label }}:</label> {{ style_form.pages }}</p>
- </fieldset>
- <input type="submit" value="{% trans 'Save' %}">
- </form>
Advertisement
Add Comment
Please, Sign In to add comment