Django формы, сохраняющие данные, не представленные пользователем - PullRequest
0 голосов
/ 25 июля 2010
class SomeModel(models.Model):
     text = models.TextField()
     ip = models.IPAddressField()
     created_on = models.DateTimeField()
     updated_on = models.DateTimeField()

Скажем, у меня это как модель, что если бы я хотел отображать только виджет "текстовое поле", чтобы пользователь мог отправлять данные, но я, очевидно, не хотел бы, чтобы пользователь видел виджеты для ip, creation_on, updated_on для быть изменен. Да, я знаю, что могу добавить это как скрытое поле для формы, но это не то, что я ищу.

Мне больше интересно, как я могу вообще не отображать эти поля при отображении формы, а просто динамически заполнять поля, когда форма публикуется и проходит проверку формы? Я предполагаю каким-то образом переопределить пустые значения ip, create_on, updated_on, пока форма очищается / проверяется. Я знаю, как сделать это в представлении с помощью request.POST.copy и внедрить мои значения, но я хотел бы знать, возможно ли это в моделях или формах.

1 Ответ

2 голосов
/ 25 июля 2010

Две вещи:

Первый ModelForms :

Class SomeModelForm(ModelForm):
    class Meta:
        exclude = ['ip','created_on', 'updated_on']

Два API полей модели :

class SomeModel(models.Model):
   text = models.TextField()
   ip = models.IPAddressField()
   created_on = models.DateTimeField(auto_now_add=True)
   updated_on = models.DateTimeField(auto_now=True)

Три:

Что касается ip, я думаю, вы должны это учитывать в своих взглядах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...