Запрос поля внешнего ключа в форме создания django
У меня есть 3 модели, первая - пользовательская модель пользователя для обработки прав доступа с двумя булевыми полями. разрешений с двумя булевыми полями, вторая - lead с внешним ключом ключом пользователя, третья - event с датой и внешним ключом lead. При создании экземпляра события я хочу видеть только зацепки связанные с вошедшим в систему пользователем в форме создания. Я пробовал несколько решения, например, передать запрос в функцию init с user=None в параметрах с условием if user:, определение функции, которая возвращает набор запросов, но это не сработало, выскочила ошибка " function object has no attribute " и вот тут я получил ошибку ошибка "View.init() принимает 1 позиционный аргумент, но было задано 2. ", любая помощь будет оценена
.
#models
class Lead(models.Model):
User = models.ForeignKey(settings.AUTH_USER_MODEL,null=True, blank=True, on_delete=models.SET_NULL)
class Event(models.Model):
Lead = models.ForeignKey(Lead,null=True, on_delete=models.CASCADE)
#views
class EventCreateForUser(LoginRequiredMixin,CreateView):
template_name = "leads/event_create.html"
form_class = EventForm
def get_form_kwargs(self):
kwargs = super(EventForm, self).get_form_kwargs()
kwargs['user'] = self.request.user
return kwargs
def get_success_url(self):
return reverse("leads:lead_list")
def form_valid(self, form):
event = form.save(commit=False)
event.Lead.User = self.request.user
form.save()
messages.success(self.request, "You have successfully created a lead")
return super(EventCreateForUser, self).form_valid(form)
#forms
class EventForm(ModelForm):
class Meta:
model = Event
widgets = {
'start_time': DateInput(attrs={'type': 'datetime-local'}, format='%Y-%m-%dT%H:%M'),
'end_time': DateInput(attrs={'type': 'datetime-local'}, format='%Y-%m-%dT%H:%M'),
}
fields = '__all__'
def __init__(self,**kwargs):
user = kwargs.pop('user')
super(EventForm, self).__init__(**kwargs)
self.fields['Lead'].queryset = Lead.objects.filter(User = user)
self.fields['start_time'].input_formats = ('%Y-%m-%dT%H:%M',)
self.fields['end_time'].input_formats = ('%Y-%m-%dT%H:%M',)