Предупреждение Django при рендеринге: неверное целочисленное значение: ... для столбца 'user_id' в строке 1 - PullRequest
0 голосов
/ 18 января 2011

Я создаю раздел для своего сайта, который позволяет охотникам писать отчеты об охоте.

в этом разделе они могут выбрать из «список пожеланий» (животные, на которых они хотели бы охотиться) и «список мешков» (животные, на которых они охотились)

Я создал форму, и мне нужно использовать некоторые фильтры для извлечения только пользовательских данных .

У меня проблемы с моим forms.py или чем-то еще из-за TemplateSyntaxError.

Основой того, что я хочу, является «список сумок» для фильтрации только моих трофеев , и пользователю не нужно выбирать самого себя, но его уже пропустили, т.е. нет меню выбора для пользователя.

мой forms.py выглядит так

class HuntingReportForm(ModelForm):
    date_travel_started = forms.DateField(widget=extras.SelectDateWidget(years=range(1970,2012)))
    date_travel_ended = forms.DateField(widget=extras.SelectDateWidget(years=range(1970,2012)))
    wish_list = forms.ModelMultipleChoiceField(queryset=Specie.objects.all(), widget=FilteredSelectMultiple("verbose name", is_stacked=False), required=False)
    bag_list = forms.ModelMultipleChoiceField(queryset=Trophies.objects.all(), widget=FilteredSelectMultiple("verbose name", is_stacked=False), required=False)

    class Meta:
        model = HuntingReport
        #exclude = ['user',]

    def __init__(self, user, *args, **kwargs):
        #self.user = kwargs.pop('user', None)
        self.validate = kwargs.pop('validate', False)
        super(HuntingReportForm, self).__init__(*args, **kwargs)

        self.fields['bag_list'] = forms.ModelMultipleChoiceField(queryset=Trophies.objects.filter(user = user), widget=FilteredSelectMultiple("verbose name", is_stacked=False), required=False)
        users = User.objects.filter(userprofile__outfitter=True)
        self.fields['outfitter'].choices = [('', '')] + [(user.pk, user.get_full_name()) for user in users]
        self.fields.keyOrder = ['title', 'date_travel_started', 'date_travel_ended', 'outfitter', 'wish_list', 'bag_list','report', 'user']

Ваша помощь очень ценится.

1 Ответ

1 голос
/ 18 января 2011

Вы переопределили подпись метода __init__ формы, добавив сначала аргумент user.Вам нужно будет вносить изменения везде, где вы инициализируете форму, чтобы убедиться, что вы ввели user до request.POST.

или, предпочтительно, вернитесь к закомментированному коду, который вы получили userвведите kwargs и удалите ссылку на user в сигнатуре метода.

...