django-can';t计算视图以分配新项目
我已经在我的观点中提到了这一点,并试图为新产品指定新的卡车名称 当用户名称为None且没有产品实例时,脚本转到django-can';t计算视图以分配新项目,django,python-2.7,django-models,django-forms,django-views,Django,Python 2.7,Django Models,Django Forms,Django Views,我已经在我的观点中提到了这一点,并试图为新产品指定新的卡车名称 当用户名称为None且没有产品实例时,脚本转到 try: truck_name = Product.objects.get(user=request.user) 并跳转到,除了: @login_required def profile_edit(request): owner = TruckOwnerStatus.objects.get(user=request.user) truck_form = Reg
try:
truck_name = Product.objects.get(user=request.user)
并跳转到,除了:
@login_required
def profile_edit(request):
owner = TruckOwnerStatus.objects.get(user=request.user)
truck_form = RegisterTruckForm()
i = owner.id
print i
try:
truck_name = Product.objects.get(user=request.user)
if request.method == 'GET':
if truck_name is not None:
truck_form = RegisterTruckForm(instance=truck_name)
else:
truck_form = RegisterTruckForm()
context = {
'truck_form': truck_form,
'truck_name': truck_name,
}
return render(request, 'accounts/profile_edit.html', context)
elif request.method == 'POST':
if truck_name is not None:
truck_form = RegisterTruckForm(request.POST, request.FILES, instance=truck_name)
else:
truck_form = RegisterTruckForm(request.POST, request.FILES)
#once clicked save
if truck_form.is_valid():
truck_name = truck_form.save(commit=False)
truck_name.product = Product.objects.get(user=request.user)
truck_form.save_m2m()
truck_name.save()
messages.success(request, "Successfully Saved!!")
return HttpResponseRedirect('/')
return render_to_response('accounts/profile_edit.html', {'truck_form': truck_form}, context_instance=RequestContext(request))
except:
print "hii"
if request.method == 'POST':
truck_form = RegisterTruckForm(request.POST, request.FILES)
truck_owner = request.user
if truck_owner is not None:
truck_form = RegisterTruckForm(request.POST, request.FILES, instance=truck_owner)
else:
truck_form = RegisterTruckForm(request.POST, request.FILES)
if truck_form.is_valid():
truck_owner = truck_form.save(commit=False)
truck_owner.profile = Product.objects.create(user=request.user)
truck_form.save_m2m()
truck_owner.profile.save()
messages.success(request, "Successfully Saved!!")
return HttpResponseRedirect('/')
else:
messages.error(request, "Please recheck")
# return render(request, context, 'accounts/profile_edit.html',)
context = {"truck_form": truck_form}
return render(request, 'accounts/profile_edit.html', context)
它执行保存表单的任务,但不将表单中的卡车名称分配给请求用户。因此,不会将任何内容分配给新产品
我试着把
truck\u name=Product.objects.get(user=request.user),但它返回一个错误,因为此用户没有产品实例,因此没有truck\u名称
我可以在管理中看到条目,但无法查看,因为没有卡车名称。但是如果我为同一个用户运行整个profile\u edit并填写表单,则会指定卡车名称
我如何分配它
下面是我的产品型号
class Product(models.Model):
user = models.OneToOneField(User)
owner_name = models.CharField(max_length=120)
email = models.EmailField(max_length=120)
contact_number = models.IntegerField(max_length=15, null=True, blank=True)
foodtruck_name = models.CharField(max_length=120)
logo = models.ImageField(upload_to='foodtruck/logo/', null=True, blank=True)
slogan = models.TextField(max_length=250, null=True, blank=True)
about_us = models.TextField(max_length=500, null=True, blank=True)
operating_state = models.CharField(max_length=120, choices=STATE_CHOICES)
bsb = models.IntegerField(max_length=15, null=True, blank=True)
account_number = models.IntegerField(max_length=15, null=True, blank=True)
availability_link = models.CharField(max_length=300, null=True, blank=True)
slug = models.SlugField(unique=True)
timestamp = models.DateTimeField(auto_now_add=True, auto_now=False)
updated = models.DateTimeField(auto_now_add=False, auto_now=True)
active = models.BooleanField(default=True)
update_defaults = models.BooleanField(default=False)
def __unicode__(self):
return self.foodtruck_name
class Meta:
unique_together = ('foodtruck_name', 'slug')
def get_price(self):
return self.price
def get_absolute_url(self):
return reverse("single_product", kwargs={"slug": self.slug})
create调用“Product.objects.create(user=request.user)”有效吗?我可以在模型中看到很多非空字段。因此,在没有所有必需数据的情况下,如何创建产品实例呢?除了,永远不要执行空白的
。try块中可能会发生各种各样的错误,您永远也不会知道。删除try/except和except块中的所有代码。