내 양식의 데이터를 추가 할 때이 오류가 발생합니다./open_shop/ 열 슬러그에서 IntegrityError는열 슬러그가 고유하지 않습니다.
그러나 테스트하고 독특한
class OpenShopForm(forms.ModelForm):
class Meta:
model = Shop
class OpenShop(CreateView):
model = Shop
form_class = OpenShopForm
def form_valid(self, form):
f = form.save(commit=False)
f.submitter = self.request.user
if self.request.method == 'POST':
f = OpenShopForm(self.request.POST)
f.save()
return super(CreateView, self).form_valid(form)
def get_success_url(self):
return reverse("profile", kwargs={'slug': self.request.user})
내가 관리자를 통해 동일한를 추가하면
, 그것은이 코드는 저장하지 않습니다 제대로 작동 강타 고유하지 않습니다 사진 :
class OpenShop(CreateView):
model = Shop
form_class = OpenShopForm
def form_valid(self, form):
f = form.save(commit=False)
f.submitter = self.request.user
f.save()
return super(CreateView, self).form_valid(form)
def get_success_url(self):
return reverse("profile", kwargs={'slug': self.request.user})
{% extends "base.html"%}
{% block content %}
<form enctype="multipart/form-data" action="{% url 'addproduct' %}" method="post">{% csrf_token %}
{{ form.non_field_errors }}
<p>
{{form.title.errors}}
<label class="txtField" for="id_subject">Product name:</label>
{{ form.title }}
</p>
<p>
{{form.slug.errors}}
<label class="txtField" for="id_subject">Slug:</label>
{{ form.slug }}
</p>
<p>
{{form.catalog.errors}}
<label class="txtField" for="id_subject">Product catalog:</label>
{{ form.catalog }}
<p>
{{form.subcatalog.errors}}
<label class="txtField" for="id_subject">Product subcatalog:</label>
{{ form.categories }}
</p>
<p>
{{form.description.errors}}
<label class="txtField" for="id_subject">Product descriptions:</label>
{{ form.description }}
</p>
<p>
{{form.price.errors}}
<label class="txtField" for="id_subject">Product price:</label>
{{ form.price }}
</p>
<p>
{{form.sale_price.errors}}
<label class="txtField" for="id_subject">Product sale price:</label>
{{ form.sale_price }}
</p>
<p>
{{form.is_active.errors}}
<label class="txtField" for="id_subject">Product activity:</label>
{{ form.is_active }}
</p>
<p>
{{form.is_featured.errors}}
<label class="txtField" for="id_subject">Product featured:</label>
{{ form.is_featured }}
</p>
<p>
{{form.quantity.errors}}
<label class="txtField" for="id_subject">Product quantity:</label>
{{ form.quantity }}
</p>
<p>
{{form.shop.errors}}
<label class="txtField" for="id_subject">Product shop:</label>
{{ form.shop }}
</p>
<input type="submit" value="Submit" />
</form>
{% endblock %
}
models.py
class Product(models.Model):
title = models.CharField(max_length=100)
slug = models.SlugField(unique=True)
image = models.ImageField(verbose_name=u'Image', upload_to="product_pic", blank=True)
catalog = models.ForeignKey(Catalog)
subcatalog = models.ManyToManyField(Subcatalog)
description = models.TextField(blank=True, help_text="Describe product")
submitter = models.ForeignKey(User, related_name="product vendor")
price = models.DecimalField(max_digits=15, decimal_places=2)
sale_price = models.DecimalField(max_digits=15, decimal_places=2)
is_active = models.BooleanField(default=True)
is_featured = models.BooleanField(default=False)
quantity = models.IntegerField()
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
shop = models.ForeignKey(Shop)
def __unicode__(self):
return self.title
'f = OpenShopForm (self.request.POST)'가'f.submitter' 행을 완전히 닫지 않습니까? 만약 내가 올바르게 이해한다면, 제출자는 슬러그입니다. 그래서 당신이 그 라인을 오버라이드한다면, 슬러그는 – yuvi
으로 지정되고'request.POST'를 사용하여 그림을 저장합니까 ?? 이는 파일이'request.POST'가 아니라'request.FILES'로 전송되기 때문에 의미가 없습니다. – yuvi
도 저장되지 않습니다. 나는 capitally 붙어 ... – wadadaaa