Чтобы сделать более удобный интерфейс на моем веб-сайте, я хотел бы разделить множественный выбор на пару множественных выборок на основе атрибута. Как бы вы go об этом?
Models.py
У меня в основном 4 класса, как показано ниже. У меня есть график, с которым могут быть связаны задачи. Кроме того, пользователь должен иметь возможность назначать пользовательские поля по расписанию. Примером пользовательского поля может быть «topi c» или «priority»: все, что решит пользователь. Каждое пользовательское поле может иметь несколько значений пользовательских полей. Например, значениями «приоритет» могут быть «Срочно», «Нормально» и «Нет ru sh». Каждой задаче должно быть присвоено значение. В идеале мне бы хотелось, чтобы в каждом пользовательском поле было только одно возможное значение. Поэтому, следуя приведенным выше примерам, задача не может быть «срочной» и «нормальной» одновременно. Это еще одна вещь, которую я должен выяснить, поэтому любые советы приветствуются, но выходят за рамки этого вопроса.
class Schedule(models.Model):
title = models.CharField(max_length=50)
def __str__(self):
return self.title
class Tasks(models.Model):
schedule = models.ForeignKey(Schedule, on_delete=models.CASCADE)
title = models.TextField()
start = models.DateTimeField()
end = models.DateTimeField()
userfieldvalues = models.ManyToManyField("UserFieldValues", blank=True)
def __str__(self):
return self.title
class UserField(models.Model):
name = models.CharField(max_length=50)
schedule = models.ForeignKey(Schedule, on_delete=models.CASCADE)
def __str__(self):
return self.name
class UserFieldValues(models.Model):
value = models.CharField(max_length=50)
userfield = models.ForeignKey(UserField, on_delete=models.CASCADE, related_name="values")
def __str__(self):
return self.value
![Overview of my model classes and relations.](https://i.stack.imgur.com/xLHfi.png)
Template and forms.py
Я создал форму:
class TaskForm(forms.ModelForm):
class Meta:
model = Task
fields = ("title", "start", "end", "userfieldvalues")
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.fields['title'].label = 'Task Title'
self.fields['title'].widget.attrs['rows'] = 1
self.fields['start'].widget.format = '%H:%Mh, %d-%m-%Y'
self.fields['start'].input_formats = ['%H:%Mh, %d-%m-%Y']
self.fields['end'].widget.format = '%H:%Mh, %d-%m-%Y'
self.fields['end'].input_formats = ['%H:%Mh, %d-%m-%Y']
В моем шаблоне я отображаю форму. Для значений пользовательских полей теперь отображаются все опции множественного выбора. Я хотел бы создать множественный выбор для каждого UserField, но я не знаю, как go о.