0
私は、(画像をアップロードするための)フォームのアップロード可能性をデータベースに設定しようとしていました。私はそれを実行しようとするたびに、それは画像であると思われるnullを無視しません。私は読んできましたが、これを固定して1日半の間修正しようとしましたが、このテーマでは多くのドキュメントが見つかりませんでした。ファイルをアップロードする必要がある場所がないか、または写真がリストに追加されていない場合はnullを無視する方法がありますか?Django - "imageLink"列のヌル値がnullでない制約に違反しています
エラーメッセージ:
IntegrityError at /createproduct/
null value in column "imageLink" violates not-null constraint
DETAIL: Failing row contains (81, Comedy, Comic, DC, 5, Engels, 5, Henk, haHAA, null, 808, 2000-04-02).
フォームスニペット1:
class PRegistrationForm(ModelForm):
ProductsEntry = Products(prodNum=products.id, prodName=products.prodName, prodPrice=products.prodPrice,
prodStock=products.prodStock)
ProductsEntry.save()
ProdData = ProductDetails(prodNum=products(prodNum=products.id), genre=products.genre,
type=products.type, publisher=products.publisher,
totalPages=products.totalPages, language=products.language,
rating=products.rating, author=products.author, desc=products.desc,
imageLink=products.imageLink, pubDatum=products.pubDatum)
ProdData.save()
if commit:
products.save()
return products
フォームスニペット2:
class ProductDetails(forms.Form):
products_prodName = forms.CharField(required=True, max_length=200)
products_prodPrice = forms.DecimalField(required=True, max_digits=5, decimal_places=2)
products_prodStock = forms.IntegerField(required=True, max_value=5000, min_value=1)
products_genre = forms.CharField(required=False, max_length=15)
products_type = forms.CharField(required=False, max_length=15)
products_publisher = forms.CharField(required=True, max_length=30)
products_totalPages = forms.IntegerField(required=True, max_value=2000, min_value=1)
products_language = forms.CharField(required=False, max_length=25)
products_rating = forms.IntegerField(required=False, max_value=5, min_value=1)
products_author = forms.CharField(required=True, max_length=30)
products_desc = forms.CharField(required=True, max_length=2000)
products_imageLink = forms.FileField(allow_empty_file=True, required=False)
products_pubDatum = forms.DateField(required=False)
def __init__(self, *args, **kwargs):
super(ProductDetails, self).__init__(*args, **kwargs)
self.fields['products_prodName'].label = "Titel:"
self.fields['products_prodPrice'].label = "Prijs:"
self.fields['products_prodStock'].label = "Quantiteit:"
self.fields['products_genre'].label = "Genre:"
self.fields['products_type'].label = "Type:"
self.fields['products_publisher'].label = "Uitgever:"
self.fields['products_totalPages'].label = "Bladzijden:"
self.fields['products_language'].label = "Taal:"
self.fields['products_rating'].label = "Score:"
self.fields['products_author'].label = "Schrijver:"
self.fields['products_desc'].label = "Beschrijving:"
self.fields['products_imageLink'].label = "Foto:"
self.fields['products_pubDatum'].label = "Uitgeefdatum:"
モデル:
class Products(models.Model):
class Meta:
verbose_name_plural = "Products"
prodNum = models.IntegerField(primary_key=True)
prodName = models.CharField(max_length=200)
prodPrice = models.DecimalField(max_digits=5, decimal_places=2)
prodStock = models.IntegerField()
def __str__(self):
return (str(self.prodNum))
class ProductDetails(models.Model):
class Meta:
verbose_name_plural = "Product details"
prodNum = models.ForeignKey(Products, db_column='prodNum')
genre = models.CharField(max_length=50)
type = models.CharField(max_length=50, default="Comic")
publisher = models.CharField(max_length=50)
totalPages = models.IntegerField()
language = models.CharField(max_length=25, default="Engels")
rating = models.IntegerField()
author = models.CharField(max_length=50)
desc = models.TextField()
imageLink = models.CharField(max_length=300)
pubDatum = models.CharField(max_length=30, default="1 januari, 1990")
を私はすでにそれを試してみましたが、私はそれに加えて、それを実行しようとした場合、それは言う: はTypeErrorを予期しないキーワード引数 'null'が表示される –
変更後に移行を実行しましたか? –
モデルフィールドではなく、モデルフォームフィールドをコピーしたので、私は自分の答えを編集しました。 –