Вместо этого используйте 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'
}
}
Виджет 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 на сохранении.
Иметь Внешний ключ по умолчанию в модели:
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.
Если вы используете подход Эндрю, заключающийся во включении скрытого значения в url, и все же хотите использовать один из встроенных шаблонов формы Django, то для вас есть возможность исключить скрытое поле.
http://docs.djangoproject.com/en/1. 1/topics/forms/modelforms/#using-a-subset-of-fields-on-the-form