我有这个 ModelForm
class ScheduleForm(forms.ModelForm):
class Meta:
model = Schedule
fields = ['name', 'involved_people',]
def __init__(self, user, *args, **kwargs):
super(ScheduleForm, self).__init__(*args, **kwargs)
self.fields['involved_people'].queryset = Profile.objects.exclude(user=user)
Run Code Online (Sandbox Code Playgroud)
这是我的看法
def create_schedule(request):
form = ScheduleForm(request.POST or None)
schedules = Schedule.objects.all().order_by('deadline_date')
if form.is_valid():
schedule = form.save(commit=False)
schedule.save()
messages.success(request, "Schedule added successfully!")
return render(request, 'schedule/index.html', {'schedules': schedules})
context = {'form': form}
return render(request, 'schedule/create_schedule.html', context)
Run Code Online (Sandbox Code Playgroud)
你如何通过 request.user 视图?你如何初始化其中的表单request.user?
您已添加user到__init__方法中,
def __init__(self, user, *args, **kwargs):
Run Code Online (Sandbox Code Playgroud)
所以现在您只需在实例化表单时将用户作为第一个参数传递。
form = ScheduleForm(request.user, request.POST or None)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1559 次 |
| 最近记录: |