我有一个活动和参加者的模型
class Event(models.Model):
name = models.CharField(...)
class Attendee(models.Model):
event = models.ForeignKey(Event)
first_name = models.CharField(...)
last_name = models.CharField(...)
我想为人们创建一个注册为与会者的视图,但我想在视图中定义他们注册的事件。与会者不应该选择该活动。他们只能输入他们的名字。
我创建了一个模型表单:
class AttendeeForm(forms.ModelForm):
class Meta:
model = Attendee
fields = ['first_name', 'last_name']
我创建了一个视图:
class Signup(FormView):
form_class = AttendeeForm
template_name = 'event/signup.html'
success_url = reverse('event_signup_success')
def event(self):
"""
For example, let's say I have the event here.
What do I do with it?
"""
return Event.objects.get(pk=1)
尝试提交此表单目前会导致错误,因为参加者没有定义事件。我不确定如何在视图中设置事件。我不想将事件作为隐藏字段添加到表单中,然后使用get_initial
在视图中设置它,因为用户可以通过修改POST数据来更改它。以用户无法更改事件(或查看其他事件)的方式设置事件的最佳方法是什么?