Django устанавливает значение по умолчанию для ввода модели

Когда я загружаю страницу, значение input автоматически становится таким: Issue Screenshot

Как это возможно?

просматривает файл

    if request.method == 'POST':
        form = FieldForm(request.POST, instance=Field(user=request.user))
        if form.is_valid():
            obj = form.save(commit=False)
            obj.creator_adress = get_client_ip(request)
            obj.save()
            return redirect('/dashboard')
    else:
        form = FieldForm(instance=Field)
    
    ......

файл форм

class FieldForm(forms.ModelForm):
    class Meta:
        model = Field

        fields = (
            'title',
            'url'
        )

файл моделей

class Field(models.Model):
    user = models.ForeignKey(
        settings.AUTH_USER_MODEL,
        default=None,
        null=True,
        on_delete=models.CASCADE,
    )
    title = models.CharField(max_length=255)
    url = models.CharField(max_length=255)
    creator_adress = models.GenericIPAddressField(null=True)

    def __str__(self):
        return str(self.user)

Здесь один вход 😂 value= <django.db.models.query_utils.DeferredAttribute object at 0x000001E180304250>

В вашем представлении вы передаете ссылку на вашу модель Field в качестве аргумента instance. Это помещает представление полей модели в поля вашей формы при ее отображении. Если вы хотите получить пустую форму при загрузке страницы, то просто удалите аргумент instance и создайте свою форму в утверждении else, например form = FieldForm(). Аргумент instance нужен только для формы, если вы пытаетесь предварительно заполнить форму данными, например, если вы создаете представление, в котором хотите обновить информацию об уже созданном объекте, вы передадите экземпляр вашей модели в аргумент instance.

Вернуться на верх