0

视图.py

def add_phone(request):
    phoneForm = PhoneForm()
    user = request.user
    phone = Phone_info.objects.get(user=2)
    phoneForm = PhoneForm(instance=phone)    
    phone.user=request.user
    if request.method=='POST':        
        phoneForm = PhoneForm(request.POST,request.user,instance=phone) 
        user=request.user       
        if phoneForm.is_valid():
            phone=phoneForm.save(commit=False)
            phone.user=request.user 
            phone.save()
        return redirect('/member/contact-list/')

模型.py

class Phone_info(models.Model):
    user = models.ForeignKey(User, null=True)
    name1 = models.CharField('Name', max_length=100, null=True, blank=True)

表格.py

class PhoneForm(forms.ModelForm):

    class Meta:
        model = Phone_info

在views.py中,form.is_valid()没有发生,因为用户没有通过表单。通过什么方法我可以通过表单传递用户。我在google中搜索相同,没有任何想法。请帮助我这。

4

2 回答 2

1

您可以在初始化表单时执行此操作:

phoneForm = PhoneForm({'user':request.user.id})

这样,您将向表单发出请求的用户传递。

这是完整的方法:

def add_phone(request):
    user = request.user
    phoneForm = PhoneForm({'user':user.id})
    if request.method=='POST':        
        phoneForm = PhoneForm(request.POST) 
        if phoneForm.is_valid():
            phone=phoneForm.save(commit=False)
            phone.save()
        return redirect('/member/contact-list/')

希望能帮助到你。

于 2013-05-06T15:16:30.527 回答
0

切换一些应该可以解决您的问题

def add_phone(request):
    if request.method == 'POST':        
        phoneForm = PhoneForm(request.POST)
        phoneForm.user = request.user #if a phone has a user and a form has a     
        if phoneForm.is_valid():
            phone = phoneForm.save(commit=False)
            phone.save()
        return redirect('/member/contact-list/')

我重构了很多,因为你有一些多余的代码。我删除了大多数引用request.user

于 2013-05-06T15:15:17.167 回答