Я новичок в Stack Overflow, поэтому заранее благодарю вас за понимание. Это вопрос о Django 3,0 (т.е. Python 3,6+).
Пример использования:
Допустим, я успешно проанализировал Свод федеральных правил и определил, что в каждом нормативном акте есть три части - цитата, тема и сам регламент. Я могу разобрать их во вложенном словаре при необходимости (или XML, или CSV, или в любом другом формате).
Словарь примерно такой:
{
'citation 1' : {'Subject of Regulation 1' : 'Text of regulation'}
'citation 2' : {'Subject of Regulation 2 : 'More regulatory text'}
}
Там сотни положений и цитат. Я не хочу жестко закодировать эти правила в моей модели, поэтому я хочу сохранить их в словаре и называть их своей моделью.
Давайте также предположим, что у меня сложный бизнес, который должен соответствовать многим из этих правил, поэтому мне нужно выяснить, применимо ли , и как я собираюсь его реализовать. .
Итак, это мой models.py
class CFR(models.Model):
citation = models.CharField(max_length = 25)
subject = models.CharField(max_length = 25)
regulation_text = models.TextField()
applicable = models.BooleanField(default = True)
implementation = models.TextField()
Модель содержит поля для применимости и реализации.
Мой forms.py. Да, я знаю, что не должен использовать __all__
.
class RegulationForm(forms.ModelForm):
class Meta():
model = CFR
fields = ('__all__')
и мой views.py
class ApplicabilityView(CreateView):
model = CFR
template_name = "template.html"
form_class = RegulationForm
Я хотел бы использовать модель для:
- итерации по каждому правилу в словаре.
- Визуализируйте форму, содержащую все правила в словаре
- Добавьте два поля из модели к каждому правилу формы ( применимо и реализация полей).
- Есть одна кнопка сохранения в конце формы.
Я надеялся передать словарь правил в набор запросов, используя def get_initial
, но Я не могу этого понять. Передача словаря позволит мне повторно использовать код с любой частью CFR до тех пор, пока я могу понять, как сделать словарь.
Альтернативой является жесткое кодирование всех правил в моем models.py
- и я бы предпочел найти более гибкое решение.
Спасибо!