Нашли опечатку?

Выделите её мышкой и нажмите Enter

Ctrl-Enter
Выполнено:
87 1 199 25
на поддержку перевода
Яндекс Яндекс.Деньги Хочу такую же кнопку
Ускорить процесс перевода!

ЯМ:41001223475816

Редактор ресурсов Gettext для Android
Всего пользователей: 1147
Русская группа
на Google

Документация Django на русском

Документация на русском языке для Django стала реальностью. Благодаря новым возможностям движка Sphinx мы можем оперативно дополнять перевод, по мере обновления оригинальной документации.

Нужна помощь дизайнера

Хотим добавить ачивки на сайте. Они уже как бы есть, но нет красивых иконок для отображения в профиле и на сайте. Если кто может быстренько и без напряга сделать с десяток, мы были бы благодарны. Обсуждение на форуме.

<<< Вернуться

Пример использования inlineformset

23 января 2013 г. 14:44:31

Код добавления снипета в это приложение

рейтинг: 0

code_review/forms.py

from django import forms
from django.forms.models import inlineformset_factory
from .models import Comment, Snipet, File
FileFormset = inlineformset_factory(Snipet, File, can_delete=False)
class AddSnipetForm(forms.ModelForm):
    class Meta:
        model = Snipet
        fields = ('title', 'description', 'language')
    def __init__(self, author, *args, **kwargs):
        self.author = author
        super(AddSnipetForm, self).__init__(*args, **kwargs)
    def save(self, commit=True):
        obj = super(AddSnipetForm, self).save(commit=False)
        obj.author = self.author
        if commit:
            obj.save()
        return obj

code_review/view.py

from .forms import CommentForm, AddSnipetForm, FileFormset
from .models import Snipet, Comment, File
@login_required
@render_to('code_review/add.html')
def add(request):
    form = AddSnipetForm(request.user, request.POST or None)
    if form.is_valid():
        obj = form.save(commit=False)
        form_validated = True
    else:
        obj = Snipet()
        form_validated = False
    file_formset = FileFormset(request.POST or None, instance=obj)
    if file_formset.is_valid() and form_validated:
        if not any(f.has_changed() for f in file_formset.forms):
            form._errors['__all__'] = form.error_class([_(u'Add at least one file')])
        else:
            obj.save()
            file_formset.save()
            return redirect(obj)
    return {
        'form': form,
        'file_formset': file_formset
    }

code_review/add.html

{% extends 'base.html' %}
{% load i18n pagination_tags bootstrap %}
{% load url from future %}
{% block title %}{% trans 'Code Review' %} | {{ block.super }}{% endblock %}
{% block head %}
<style>
    #id_description {
        height: 100px;
    }
    .control-group-type-content textarea {
        height: 150px;
    }
</style>
{% endblock %}
{% block content %}
    <form method="post" class="form-horizontal">
        <h2 style="margin-left: 20px" class="pull-left">{% trans 'Add snippet' %}</h2>
        <button style="margin-top: 13px; margin-right: 30px" type="submit" class="btn btn-primary pull-right">{% trans "Create" %}</button>
        <a style="margin-top: 13px; margin-right: 5px" href="{% url 'code_review:index' %}" class="btn pull-right">{% trans "Cancel" %}</a>
        <div class="clearfix"></div>
        {{ file_formset.management_form }}
        {% csrf_token %}
        {{ form|bootstrap }}
        <h4>{% trans "Files" %}:</h4>
        {% for file_form in file_formset %}
            <div class="well">{{ file_form|bootstrap }}</div>
        {% endfor %}
    </form>
{% endblock %}