django-can';t计算视图以分配新项目

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

我已经在我的观点中提到了这一点,并试图为新产品指定新的卡车名称

当用户名称为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 = 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块中的所有代码。