簡體   English   中英

NOT NULL 約束失敗 Django

[英]NOT NULL constraint failed Django

我想保存部門 model forms 和 Model 方向值,在部門中使用外鍵,但我有這個錯誤。

模型.py

class Direccion(models.Model):
calle = models.CharField(max_length=50)
numero = models.CharField(max_length=6)
#comuna = models.ForeignKey(Comuna, on_delete=models.CASCADE)
 
class Departamento(models.Model):
n_habitaciones = models.IntegerField(max_length=1)
n_banios =  models.IntegerField(max_length=1)
n_depto = models.CharField(max_length=5)
descripcion = models.CharField(max_length=500)
precio = models.IntegerField(max_length=10)
img1 = models.ImageField(upload_to='Departamentos/')
img2 = models.ImageField(upload_to='Departamentos/')
img3 = models.ImageField(upload_to='Departamentos/')
img4 = models.ImageField(upload_to='Departamentos/')
img5 = models.ImageField(upload_to='Departamentos/')
direccion = models.ForeignKey(Direccion, on_delete=models.CASCADE)

Forms.py

class DeptosForms(forms.ModelForm):
descripcion = forms.CharField(max_length=1000, widget=forms.Textarea)
img1 = forms.ImageField(widget=forms.FileInput(attrs={'class': 'form-control', 'type':'file'}))
img2 = forms.ImageField(widget=forms.FileInput(attrs={'class': 'form-control', 'type':'file'}))
img3 = forms.ImageField(widget=forms.FileInput(attrs={'class': 'form-control', 'type':'file'}))
img4 = forms.ImageField(widget=forms.FileInput(attrs={'class': 'form-control', 'type':'file'}))
img5 = forms.ImageField(widget=forms.FileInput(attrs={'class': 'form-control', 'type':'file'}))
calle = forms.CharField(max_length=50)
numero = forms.CharField(max_length=6)
class Meta:
    model = Departamento
    fields = ('n_habitaciones', 'n_banios', 'n_depto', 'precio', 'descripcion', 'img1', 
    'img2', 'img3', 'img4', 'img5', 'calle', 'numero', )

視圖.py

def AddDepto(request):
if request.method == 'POST':
    form = DeptosForms(request.POST, request.FILES)
    if form.is_valid():
        depto = form.save()
        
        depto.save()
     
        messages.success(request, 'Departamnto registrado correctamente')
        return redirect('show_deptos')
else:
    form = DeptosForms()

return render(request, 'core/add_dptos.html', {'form': form})

錯誤:在此處輸入圖片描述

  1. 使用 Model 表單時無需重寫字段:

Forms.py

class DeptosForms(forms.ModelForm):
class Meta:
    model = Departamento
    fields = ('n_habitaciones', 'n_banios', 'n_depto', 'precio', 'descripcion', 'img1', 
    'img2', 'img3', 'img4', 'img5', 'calle', 'numero', )
  1. 保存時不需要再次保存 ModelForm:

視圖.py

def AddDepto(request):
if request.method == 'POST':
    form = DeptosForms(request.POST, request.FILES)
    if form.is_valid():
        form.save()
        messages.success(request, 'Departamnto registrado correctamente')
        return redirect('show_deptos')
else:
    form = DeptosForms()
return render(request, 'core/add_dptos.html', {'form': form})
  1. ...:

模型.py

direccion=models.ForeignKey(Direccion, null=True, on_delete=models.CASCADE)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM