Django 如何使用多对多关系

Django 如何使用多对多关系,django,django-models,Django,Django Models,我在我的应用程序中使用了多对多关系,无法将数据输入到Django默认创建的表中,以确保多对多关系。它在方法中给出了错误(def Set\u Checkout\u Attributes(request):)'Customer\u check\u attributes'对象没有属性'set\u customers'如果我用set\u users替换set\u customers,错误将保持不变 我使用的模型有: class Customer(models.Model): user

我在我的应用程序中使用了多对多关系,无法将数据输入到Django默认创建的表中,以确保多对多关系。它在方法中给出了错误(def Set\u Checkout\u Attributes(request):'Customer\u check\u attributes'对象没有属性'set\u customers'如果我用set\u users替换set\u customers,错误将保持不变

我使用的模型有:

class Customer(models.Model):
    user        =models.OneToOneField(User)
    birthday    =models.DateField()

class Customer_check_attributes(models.Model):
    users       =models.ManyToManyField(User)
    billing_add =models.CharField(max_length=100, blank=True , null=
我的view.py是

def CustomerRegistration(request):
    if request.user.is_authenticated():
        return HttpResponseRedirect('/profile/')
    if request.method == 'POST':
        form = Registration_Form(request.POST)
        if form.is_valid():
            user=User.objects.create_user(username=form.cleaned_data['username'], email=form.cleaned_data['email'], password = form.cleaned_data['password'])
            user.first_name = form.cleaned_data['first_name']
            user.last_name = form.cleaned_data['last_name']
            user.save()



            customer=Customer(user=user, website=form.cleaned_data['website'], birthday=form.cleaned_data['birthday'], store=form.cleaned_data['store'], welcomemail=form.cleaned_data['welcomemail'])  
            customer.save()

                    return HttpResponseRedirect('/profile/')
        else:
            check_form=Check_Attribute_Form()
            context={'form':form, 'check':check_form}
                return render_to_response('customer/customer_register.html',context , context_instance=RequestContext(request)) 
    else:
        ''' user is not submitting the form, show them a blank registration form '''

            form = Registration_Form()
        check_form = Check_Attribute_Form()
            context={'form':form,'check':check_form}
            return render_to_response('customer/customer_register.html',context , context_instance=RequestContext(request))


####################################### checkout attributes ##################################################


def Checkout_Attributes(request):



    check_form = Check_Attribute_Form()
    context={'form':check_form}
    return render_to_response('customer/checkout.html',context,context_instance=RequestContext(request))

def Set_Checkout_Attributes(request):

    #if request.user.is_authenticated():
        #return HttpResponseRedirect('/checkout/')

    if request.method == 'POST':
            check_form = Check_Attribute_Form(request.POST)
            #if check_form.is_valid():
            customer_check=Customer_check_attributes(billing_add=check_form.data['billing_add'],shipping_add=check_form.data['shipping_add'],payment_method=check_form.data['payment_method'],shipping_method=check_form.data['shipping_method'],reward_points=check_form.data['reward_points'])
            customer_check.save()
            customer_check.set_customers([user.id])
                    return HttpResponseRedirect('/profile/')
        #else:
            #check_form=Check_Attribute_Form()
            #return render_to_response('a.html',{'check_form':check_form} , context_instance=RequestContext(request)) 
    else:
            return render_to_response('f')
我在这里被撞了两天,但我解决不了。请帮帮我

谢谢

您可以这样使用:

customer_check.users.add(your user instance)
我想你是想用

user.customer_check_set.
但你只是用错了

如果类x有M2M字段y,您可以像这样直接从x实例到达y

x、 y

你可以像这样从y到x:

customer_check.users.add(your user instance)
y、 x_集

享受django的乐趣

您可以这样使用:

customer_check.users.add(your user instance)
我想你是想用

user.customer_check_set.
但你只是用错了

如果类x有M2M字段y,您可以像这样直接从x实例到达y

x、 y

你可以像这样从y到x:

customer_check.users.add(your user instance)
y、 x_集


享受django的乐趣

我用过它,但它显示了错误,现在它显示这个int()参数必须是字符串或数字,而不是“SimpleLazyObject”customer\u check.set\u customers([user.id])更改它customer\u check.users.add(user)->>>不是用户id。想想面向对象的人:)我们处理的是对象而不是它们的id。我已经告诉过你了,但它回答我全局名称user没有定义,如果我按照thikonom告诉我的那样定义它,它会给出一个错误*int()参数必须是字符串或数字,不是“SimpleLazyObject”*我使用了那个,但它显示了现在的错误。它显示这个int()参数必须是字符串或数字,而不是“SimpleLazyObject”customer\u check.set\u customers([user.id])更改它customer\u check.users.add(user)->>>不是用户id。想想面向对象的人:)我们处理的是对象而不是它们的id。我已经告诉过你了,但它回答我全局名称user没有定义,如果我按照thikonom告诉我的那样定义它,它会给出一个错误*int()参数必须是字符串或数字,而不是“SimpleLazyObject”*