[英]Form doesn't save but returns 200
我想創建一個項目對象,並通過我編寫的表單將其保存到數據庫。 現在,我可以從表單中更新它,而且管理面板也可以從那里創建項目。 但是,創建表單不保存。 當我單擊按鈕時,它刷新頁面,在終端返回200,但不保存。 我把它的每個部分,我檢查了很多,但沒有看到任何錯誤。
編輯:我嘗試了基於函數的視圖,相同的結果。 但據我了解,問題在於圖片。
這是我的模型。
class Item(models.Model):
owner = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.SET_NULL, null=True, related_name='items')
name = models.CharField(max_length=50)
description = models.TextField(max_length=250)
price = models.FloatField()
picture = models.ImageField(upload_to='item_pictures')
is_available = models.BooleanField(default=True)
created_at = models.DateField(auto_now_add=True)
updated_at = models.DateField(auto_now=True)
category = models.ForeignKey(Category, on_delete=models.DO_NOTHING, related_name='category')
slug = models.SlugField(unique=True, null=True, blank=True)
def save(self, *args, **kwargs):
self.slug = slugify(self.name)
return super(Item, self).save(*args, **kwargs)
def __str__(self):
return self.name
我的網址
path('item/create/', ItemCreateView.as_view(), name='item-create'),
我的觀點
class ItemCreateView(LoginRequiredMixin, CreateView):
model = Item
fields = ['name', 'description', 'price', 'picture', 'is_available', 'category', 'slug' ]
template_name = 'item/item_update.html'
success_url = '/'
成功網址返回主頁,但表格僅刷新
和形式
class ItemCreateForm(forms.ModelForm):
class Meta:
model = Item
fields = ['name', 'description', 'price', 'picture', 'is_available', 'category', 'slug']
最后以防萬一
{% extends "base.html" %}
{% load crispy_forms_tags %}
{% block body %}
<form action="{% url 'item-create' %}" method="POST" class="form-group">
{% csrf_token %}
<div class="row justify-content-center">
<div class="col-6">
{{ form|crispy }}
<div class="col text-center">
<button type="submit" class="btn btn-success">Create</button>
</div>
</div>
</div>
</form>
{% endblock %}
顯然我忘記了模板中的enctype =“ multipart / form-data”。 問題已經解決了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.