Как каждый добавляет значение по умолчанию (скрытые) значения для формирования шаблонов в Django?

Вместо этого используйте Groovy Traits:

http://docs.groovy-lang.org/next/html/documentation/core-traits.html

trait Person1 {
   String name

   static constraints = { name nullable : true }

   static mapping = { 
       table  'PERSON'
       name column : 'PERSON_NAME' 
   }
}

class Person2 implements Person1 {
    String address

    static constraints = { address nullable : true }

    static mapping = { 
        name address : 'PERSON_ADD' 
    }
}

7
задан Paco 7 September 2013 в 23:59
поделиться

3 ответа

Виджет django.forms.widgets.HiddenInput представит Ваше поле, как скрытый.

В большинстве случаев я думаю, что Вы найдете, что любое скрытое значение формы могло также быть указано как параметр URL вместо этого. Другими словами:

<form action="new/{{your_hidden_value}}" method="post">
....
</form>

и в urls.py:

^/new/(?P<hidden_value>\w+)/

Я предпочитаю эту технику сам, потому что мне только действительно нужны скрытые поля формы, когда я должен отследить первичный ключ образцового экземпляра - в этом случае, "edit/pkey" URL служит целям и инициирования редактирование/возврат форма и получения POST на сохранении.

8
ответ дан 6 December 2019 в 14:11
поделиться

Иметь Внешний ключ по умолчанию в модели:

mydefault = Type.objects.get(pk=3)

class P(models.Model):
   type = models.ForeignKey(Type, default=mydefault) # Type is another models.Model class
   name = models.CharField()

Отметьте то использование pk=x довольно ужасно, поскольку идеально Вы не должны заботиться о том, чему первичный ключ равен. Попытайтесь добраться до объекта, который Вы хотите некоторым другим атрибутом.

Вот то, как Вы помещаете значения по умолчанию в свои URL:

# URLconf
urlpatterns = patterns('',
    (r'^blog/$', 'blog.views.page'),
    (r'^blog/page(?P<num>\d+)/$', 'blog.views.page'),
)

# View (in blog/views.py)
def page(request, num="1"):
    # Output the appropriate page of blog entries, according to num.

В вышеупомянутом примере оба шаблона URL указывают на то же представление - blog.views.page - но первый шаблон ничего не получает от URL. Если первый шаблон будет соответствовать, страница (), то функция будет использовать свой параметр по умолчанию для цифры, "1". Если второй шаблон будет соответствовать, то страница () будет использовать любое цифровое значение, был получен regex.

5
ответ дан 6 December 2019 в 14:11
поделиться

Если вы используете подход Эндрю, заключающийся во включении скрытого значения в url, и все же хотите использовать один из встроенных шаблонов формы Django, то для вас есть возможность исключить скрытое поле.

http://docs.djangoproject.com/en/1. 1/topics/forms/modelforms/#using-a-subset-of-fields-on-the-form

2
ответ дан 6 December 2019 в 14:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: