未添加 Django DateTimeField 和用户输入字段
Django DateTimeField and User Input fields not added
我是 python Django 的初学者。我正在做练习项目。我在添加产品时卡住了。
它添加了除两个字段之外的所有字段
一世。日期时间字段
二.用户(添加产品的人)
我遇到的错误是:
django.db.utils.IntegrityError: null value in column "pub_date" violates not-null constraint
DETAIL: Failing row contains (3, Piano, Ball Pens(set of 3), 15, 30, 10, images/ballpens_QdhwoOa.jpg, null, null).
models.py
class Product(models.Model):
companyName = models.CharField(max_length=255)
pro_name = models.CharField(max_length=255)
Purchase_Price = models.IntegerField()
Sale_Price = models.IntegerField()
Quantity = models.IntegerField()
Picture = models.ImageField(upload_to='images/')
saler = models.ForeignKey(User, on_delete=models.CASCADE)
pub_date = models.DateTimeField()
def pub_date_pretty(self):
return self.pub_date.strftime('%b %e %Y')
def __str__(self):
return self.pro_name
views.py
class AddProduct(TemplateView):
template_name = 'stock/addproduct.html'
def get(self, request):
form = AddProductForm()
args = {'form':form}
return render(request, self.template_name, args)
def post(self, request):
form = AddProductForm(request.POST, request.FILES)
if form.is_valid():
productadded = form.save()
productadded.saler = request.user
productadded.pub_date = timezone.datetime.now()
productadded.save()
return redirect('stock')
else:
args = {'form': form}
return render(request, self.template_name, args)
在 views.py 中,我正在保存用户以及日期和时间,如上所示
forms.py
class AddProductForm(forms.ModelForm):
class Meta:
model = Product
fields = ('companyName', 'pro_name', 'Purchase_Price', 'Sale_Price', 'Quantity', 'Picture' )
def __init__(self, *args, **kwargs):
super(AddProductForm, self).__init__(*args, **kwargs)
self.fields['companyName'].label = 'Company Name'
self.fields['pro_name'].label = 'Product Name'
self.fields['Purchase_Price'].label = 'Purchase Price'
self.fields['Sale_Price'].label = 'Sale Price'
我们将不胜感激您的帮助。
谢谢
做一个小修正
if form.is_valid():
productadded = form.save(commit=False)
productadded.saler = request.user
productadded.pub_date = timezone.datetime.now()
productadded.save()
return redirect('stock')
我是 python Django 的初学者。我正在做练习项目。我在添加产品时卡住了。 它添加了除两个字段之外的所有字段 一世。日期时间字段 二.用户(添加产品的人)
我遇到的错误是:
django.db.utils.IntegrityError: null value in column "pub_date" violates not-null constraint
DETAIL: Failing row contains (3, Piano, Ball Pens(set of 3), 15, 30, 10, images/ballpens_QdhwoOa.jpg, null, null).
models.py
class Product(models.Model):
companyName = models.CharField(max_length=255)
pro_name = models.CharField(max_length=255)
Purchase_Price = models.IntegerField()
Sale_Price = models.IntegerField()
Quantity = models.IntegerField()
Picture = models.ImageField(upload_to='images/')
saler = models.ForeignKey(User, on_delete=models.CASCADE)
pub_date = models.DateTimeField()
def pub_date_pretty(self):
return self.pub_date.strftime('%b %e %Y')
def __str__(self):
return self.pro_name
views.py
class AddProduct(TemplateView):
template_name = 'stock/addproduct.html'
def get(self, request):
form = AddProductForm()
args = {'form':form}
return render(request, self.template_name, args)
def post(self, request):
form = AddProductForm(request.POST, request.FILES)
if form.is_valid():
productadded = form.save()
productadded.saler = request.user
productadded.pub_date = timezone.datetime.now()
productadded.save()
return redirect('stock')
else:
args = {'form': form}
return render(request, self.template_name, args)
在 views.py 中,我正在保存用户以及日期和时间,如上所示 forms.py
class AddProductForm(forms.ModelForm):
class Meta:
model = Product
fields = ('companyName', 'pro_name', 'Purchase_Price', 'Sale_Price', 'Quantity', 'Picture' )
def __init__(self, *args, **kwargs):
super(AddProductForm, self).__init__(*args, **kwargs)
self.fields['companyName'].label = 'Company Name'
self.fields['pro_name'].label = 'Product Name'
self.fields['Purchase_Price'].label = 'Purchase Price'
self.fields['Sale_Price'].label = 'Sale Price'
我们将不胜感激您的帮助。 谢谢
做一个小修正
if form.is_valid():
productadded = form.save(commit=False)
productadded.saler = request.user
productadded.pub_date = timezone.datetime.now()
productadded.save()
return redirect('stock')