相关疑难解决方法(0)

以Django Form获取当前用户

可能重复:
以Django格式获取请求数据

我的访客模型的一部分:

class Guest(models.Model):
    event = models.ForeignKey(Event, related_name='guests')
    user = models.ForeignKey(User, unique=True, related_name='guests')
    ...
Run Code Online (Sandbox Code Playgroud)

表格以获得来宾的回复:

class RSVPForm(forms.Form):
    attending_d= forms.ChoiceField(choices=VISIBLE_ATTENDING_CHOICES, initial='yes', widget=forms.RadioSelect)
    attending_b = forms.ChoiceField(choices=VISIBLE_ATTENDING_CHOICES, initial='yes', widget=forms.RadioSelect)
    number_of_guests = forms.IntegerField(initial=0)
    comment = forms.CharField(max_length=255, required=False, widget=forms.Textarea)

    ....    

    def save(self):
        guest = self.guest_class.objects.get(user=1)
        guest.attending_status_d = self.cleaned_data['attending_d']
        guest.attending_status_b = self.cleaned_data['attending_b']
        guest.number_of_guests = self.cleaned_data['number_of_guests']
        guest.comment = self.cleaned_data['comment']
        guest.save()
        return guest
Run Code Online (Sandbox Code Playgroud)

问题出在save方法中.如何将访客与当前登录的用户相关联?

guest = self.Guest.objects.get(user=1)
Run Code Online (Sandbox Code Playgroud)

而不是user=1我需要具有当前登录用户的id.

谢谢!

django-forms django-users

30
推荐指数
1
解决办法
3万
查看次数

django form:将参数从view.py传递给表单会发出错误

新手问题:我需要从views.py中的方法接受表单中的参数,但它给了我麻烦.在视图中,我创建了一个包含以下代码段的方法:

def scan_page(request):
    myClient = request.user.get_profile().client
    form = WirelessScanForm(client = myClient)   # pass parameter to the form
Run Code Online (Sandbox Code Playgroud)

在forms.py中我定义了以下形式:

class WirelessScanForm(forms.ModelForm):
    time = forms.DateTimeField(label="Schedule Time", widget=AdminSplitDateTime())

    def __init__(self,*args,**kwargs):
        myClient = kwargs.pop("client")     # client is the parameter passed from views.py
        super(WirelessScanForm, self).__init__(*args,**kwargs)
        prob = forms.ChoiceField(label="Sniffer", choices=[ x.sniffer.plug_ip for x in Sniffer.objects.filter(client = myClient) ])
Run Code Online (Sandbox Code Playgroud)

但django一直给我错误说:( TemplateSyntaxError: Caught NameError while rendering: name 'myClient' is not defined查询中发生此错误)

我担心这里会有一些愚蠢的东西,但我无法弄明白为什么.请帮忙,谢谢.

forms django parameter-passing

8
推荐指数
1
解决办法
9929
查看次数