Круговая зависимость между формой и моделью - PullRequest
0 голосов
/ 19 июня 2020

Вот форма:

class ToDoItemModelForm(forms.ModelForm):

    class Meta:
        from ToDoDashboard.models import ToDoItem
        model = ToDoItem

    fields = ['description', 'label', 'comment', ('start_date', 'due_date', 'time_estimate_hours')]

    def clean(self):
        start_date = self.cleaned_data.get('start_date')
        end_date = self.cleaned_data.get('due_date')
        if start_date > end_date:
            raise forms.ValidationError("Dates are incorrect")

        return self.cleaned_data

, а вот модель:

class ToDoItem(models.Model):
    dashboard_column = models.ForeignKey(DashboardColumn, on_delete=models.CASCADE)
    description = models.TextField()
    label = models.CharField(max_length=128)
    start_date = models.DateTimeField(null=True)
    due_date = models.DateTimeField(null=True)

    from ToDoDashboard.forms.ToDoItemForm import ToDoItemModelForm
    form = ToDoItemModelForm

Теперь написано: ImportError: невозможно импортировать имя ToDoItem из частично инициализированного модуля 'ToDoDashboard.models' (скорее всего, из-за циклического импорта)

Как решить проблему?

1 Ответ

0 голосов
/ 19 июня 2020

Это не место для определения атрибута формы для вашего варианта использования, он должен быть определен внутри класса ModelAdmin как задокументирован

PersonAdmin(admin.ModelAdmin): 
    exclude = ['age']
    form = PersonForm
...