У меня есть форма, которая удаляет информацию о грузовике из моей базы данных. Когда это не POST, форма отображает все объекты Грузовик, который принадлежит к вошедшего пользователя:Django: Параметры фильтра ModelChoiceField на основе зарегистрированных объектов пользователя
Модель:
class Truck(models.Model):
truck_name = models.IntegerField()
last_leave = models.DateField(blank=True, null=True)
next_leave = models.DateField(blank=True, null=True)
truck_route = models.CharField(max_length=120, blank=True,null=True)
user_name = models.CharField(max_length=128)
def __unicode__(self):
return str(self.truck_name)
Форма:
class RemoveTruck(forms.Form):
truck = forms.ModelChoiceField(
label='Trucks',
empty_label=None, # No empty label
required=False,
)
def __init__(self, *args, **kwargs):
request = kwargs.pop('request')
super(RemoveTruck, self).__init__(*args, **kwargs)
self.helper = FormHelper()
self.helper.form_id = 'id-removetruckform'
self.helper.form_class = 'blueForms'
self.helper.form_method = 'post'
self.helper.form_action = 'submit_survey'
self.helper.form_class = 'form-horizontal'
self.helper.label_class = 'col-lg-2'
self.helper.field_class = 'col-lg-8'
self.fields('truck').queryset = Truck.objects.all().filter(user_name=request.user.username)
self.helper.add_input(Submit('submit', 'Submit'))
self.helper.layout = Layout(
Field('truck')
)
Вид:
...
if request.method == 'POST':
form_remove_truck_post = RemoveTruck(request.POST, request=None)
if form_remove_truck_post.is_valid():
data = form_remove_truck_post.cleaned_data
truck = data['truck']
Truck.objects.all().filter(truck_name=truck.truck_name).delete()
return HttpResponseRedirect('/bucket/')
else:
form_remove_truck = RemoveTruck(request=request)
Проблема в том, что я продолжаю получать ошибку:
Тип исключения: TypeError
Исключение Значение: Инициализационные() принимает по крайней мере 2 аргумента (4 дано)
Можете ли вы дать полный след следа ошибки? Это происходит в GET или POST или обоих? – tcarobruce