Я хочу сделать форму, используемую для фильтрации поиска, без каких-либо полей.Например, учитывая этот код:
models.py:
class Message(models.Model):
happened = models.DateTimeField()
filename = models.CharField(max_length=512, blank=True, null=True)
message = models.TextField(blank=True, null=True)
dest = models.CharField(max_length=512, blank=True, null=True)
fromhost = models.ForeignKey(Hosts, related_name='to hosts', blank=True, null=True)
TYPE_CHOICES = ( (u'Info', u'Info'), (u'Error', u'Error'), (u'File', u'File'), (u'BPS', u'BPS'),)
type = models.CharField(max_length=7, choices=TYPE_CHOICES)
job = models.ForeignKey(Jobs)
views.py:
WHEN_CHOICES = ( (u'', ''), (1, u'Today'), (2, u'Two days'), (3, u'Three Days'), (7, u'Week'),(31, u'Month'),)
class MessageSearch(ModelForm): #Class that makes a form from a model that can be customized by placing info above the class Meta
message = forms.CharField(max_length=25, required=False)
job = forms.CharField(max_length=25, required=False)
happened = forms.CharField(max_length=14, widget=forms.Select(choices=WHEN_CHOICES), required=False)
class Meta:
model = Message
Это код, который я сейчас имею.Как вы можете видеть, он создает форму на основе модели.Я переопределил сообщение в форме, потому что я использую фильтр icontains, поэтому мне не нужно гигантское текстовое поле.Я переопределил дату в основном потому, что не хотел возиться с датами (я ненавижу работать с датами! Кто не?) И я изменил поле вакансий, потому что в противном случае я получал выпадающий список существующих вакансий, и я действительнохотел иметь возможность поиска по общим словам.Таким образом, я смог пометить все эти поля как необязательные
Проблема в том, что они помечают все остальные мои поля как обязательные, поскольку в модели им не разрешено оставаться пустыми.модель они не могут быть пустыми.Если они пустые, то данные плохие, и я не хочу их в БД.Однако форма является только формой фильтра на странице для отображения данных.Я никогда не буду спасаться от этой формы, поэтому мне все равно, будут ли поля пустыми или нет.Так есть ли простой способ сделать все поля обязательными = ложными, при этом используя класс Meta: model = Формат сообщения в форме?Очень удобно, что я могу сделать форму непосредственно из модели.
Кроме того, это моя первая серьезная попытка приложения django, так что если что-то нелепо неправильно, будьте добры:)