2015-01-16 11 views
0

두 django 양식의 데이터를 게시하고 싶지만 데이터를 내 db에 저장할 수 없습니다. 왜 그럴까요? 제출 버튼을 누른 후 가격 입력란 아래에 "필수 항목"이라는 메시지가 나타납니다. 당신이 얻을장고 양식과 함께 제출할 때 오류가 발생했습니다.

내보기

def addproduct(request): 

    user = request.user 
    product_form = ProductForm(request.POST or None) 
    product_image_form = ProductImageForm(request.POST or None) 

    if product_form.is_valid() and product_image_form.is_valid(): 
     product = product_form.save(commit=False) 
     product.user = request.user 
     product.slug = slugify(product_form.cleaned_data['title']) 
     product.featured = False 
     product.active = False 
     product.save() 
     product_image = product_image_form.save(commit=False) 
     product_image.featured = False 
     product_image.save() 
     return HttpResponseRedirect('/products/%s'%(product.slug)) 

내 모델

class Product(models.Model): 
    user = models.ForeignKey(settings.AUTH_USER_MODEL, blank=True, null=True) 
    title = models.CharField(max_length=120) 
    description = models.TextField(null=True, blank=True) 
    price = models.DecimalField(decimal_places=0, max_digits=100, default=0) 
    slug = models.SlugField(unique=True) 

class ProductImage(models.Model): 
    product = models.ForeignKey(Product) 
    image = models.ImageField(upload_to='products/images/') 
    featured = models.BooleanField(default=False) 

내 형태

from django import forms 
from .models import Product, ProductImage 

class ProductForm(forms.ModelForm): 
    class Meta: 
     model = Product 
     fields = ('title', 'description', 'price') 

class ProductImageForm(forms.ModelForm): 
    class Meta: 
     model = ProductImage 
     fields = ('image', 'featured') 
+0

당신은 당신의 템플릿 코드를 제공해야합니다. 명시 적으로'blank = True '를 선언하지 않는 한 모든 Django 폼 필드는 기본적으로 * 필요합니다. – Brandon

답변

1

하지 가격 입력 상자 아래에 있지만 이미지 선택 위의 오류 "이 필드는 필수입니다" .

product_image_form = ProductImageForm(request.POST or None, 
             request.FILES or None) 

을 그리고 당신의 <form> 태그에 enctype 속성을 지정하는 것을 잊지 마세요 : 당신은 ProductImageFormrequest.FILES 인수를 전달하는 것을 잊지

<form method="post" enctype="multipart/form-data"> 
+0

감사합니다. 그러나 이번에는 "칼럼 슬러그가 유일하지 않다"라는 또 다른 오류가 있습니다. 나는 슬러그 필드를 확인하고 나는 sotred 슬러그 데이터를 볼 수 있지만 그것은 독특합니다. 내가 뭔가를 오해하니? –

+0

데이터베이스에 같은 슬러그가있는 제품이 있습니다. 'product'를 저장하기 전에 확인하고 슬러그를 고유하게 변경해야합니다. 'django-autoslug' 모듈이 도움이 될 수 있습니다. – catavaran

+0

아, 훌륭합니다!. 끝없는 오류가오고 있습니다. 이번에는 "myproducts_productimage.product_id가 NULL이 아니어야합니다". 왜 그럴까요? –

관련 문제