Моя форма Django не отправляется, несмотря на получение статуса 200 в терминалеPython

Программы на Python
Ответить
Гость
 Моя форма Django не отправляется, несмотря на получение статуса 200 в терминале

Сообщение Гость »


Я работаю над своим личным проектом по загрузке и скачиванию моделей SD. Когда я добавляю модель через администратора, она работает нормально и отображается в представлении model_list, но когда я добавляю ее с помощью созданной формы, модель не добавляется в базу данных, а также не перенаправляется на URL-адрес.

Я думаю, проблема может заключаться в том, что я не добавил в форму поле создателя.

Я создал модель, как показано ниже:

из моделей импорта django.db из django.core.Exceptions import ValidationError из django.utils.translation импортируйте gettext_lazy как _ из django.core.validators импортировать FileExtensionValidator из django.contrib.auth.models импортировать AbstractUser Пользователь класса (AbstractUser): проходить # Создайте здесь свои модели. класс MLModel(models.Model): name = models.CharField(max_length=255, help_text="Имя модели") описание = models.TextField(blank=True, null=True, help_text="Описание модели") upload_date = models.DateTimeField(auto_now_add=True, help_text="Дата и время загрузки") type = models.ForeignKey("Тип", on_delete=models.CASCADE, help_text="Тип модели") Category = models.ForeignKey("Категория", on_delete=models.CASCADE, help_text="Категория модели") sd_base_model = models.ForeignKey("SDBaseModel", on_delete=models.CASCADE, help_text="Стабильная версия Diffusion для модели") Trigger_words = models.CharField(max_length=50, help_text="триггерные слова для удобного поиска модели") epochs = models.IntegerField(help_text="эпохи обучения модели") шаги = models.IntegerField(help_text="шаги обучения модели") model_file = models.FileField(upload_to='static/models', validators=[FileExtensionValidator(allowed_extensions=['ckpt', 'pt', 'safetensors', 'bin', 'zip', 'yaml', 'yml'] )], help_text="Загрузить файл модели (до 4 файлов)") снимок экрана = models.ImageField(upload_to='static/images', validators=[FileExtensionValidator(allowed_extensions=['jpg', 'jpeg', 'png', 'gif', 'mp4'])],blank=True, null =True, help_text="Загрузите снимок экрана для вывода модели") создатель = models.ForeignKey("Создатель", on_delete=models.CASCADE) Категория класса (модели.Модель): name = models.CharField(max_length=100, help_text="Название категории") защита __str__(сам): вернуть свое имя. класс SDBaseModel(models.Model): version = models.CharField(max_length=100, help_text="Имя базовой модели") защита __str__(сам): вернуть собственную версию Тип класса(модели.Модель): type = models.CharField(max_length=100, help_text="Тип модели") защита __str__(сам): вернуть self.type Создатель класса (модели.Модель): пользователь = модели.OneToOneField(Пользователь, on_delete=models.CASCADE) защита __str__(сам): вернуть self.user.username Я создал форму с помощью form.ModelForm:

из форм импорта Django из django.core.validators импортировать FileExtensionValidator из .models импортировать MLModel класс MLModelForm(forms.ModelForm): класс Мета: модель = МЛМодель поля = [ 'имя', 'описание', 'тип', 'категория', 'sd_base_model', 'триггер_слова', 'эпохи', 'шаги', 'файл_модели', 'Скриншот', ] # При необходимости добавьте пользовательскую проверку защита clean_epochs (сам): эпохи = self.cleaned_data.get('эпохи') если эпохи < 0: поднять формы.ValidationError("Эпохи не могут быть отрицательными.") возвращение эпох защита clean_steps (сам): шаги = self.cleaned_data.get('шаги') если шаги < 0: поднять формы.ValidationError("Шаги не могут быть отрицательными.") обратные шаги А также представление на основе классов:

класс ModelCreateView(generic.CreateView): имя_шаблона = "модели/model_create.html" form_class = МЛМодельФорм защита get_success_url (сам): returnverse("модели: model_list") Это HTML-код:
{% расширяет "base.html" %} {% блокирует контент %} Загрузите свою модель {% csrf_token %} {{ form.as_p }} Представлять на рассмотрение {% контента в конце блока %}
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»