это мой первый пост здесь, и я очень новичок в Django, но я просто не могу найти решение этой проблемы ... Я искал stackoverflow и google, но мне кажется, что ничего не работает ...
У меня есть приложение-вино, и я хочу добавлять и удалять вина со склада пользователя.В списке вин пользователь может выбрать вино для добавления, и идентификатор этого вина передается в данных POST.Поскольку данные теряются после первого отображения представления, я сохранил идентификатор в файле cookie, который работает, но проблема в том, что когда я работаю с ModelForm, пользователь должен выбрать внешний ключ для пользователя и для Wine, что плохо, поэтому я попытался скрыть его и установить Fk_user и Fk_wine после того, как пользователь выберет количество бутылок, которые будут добавлены, но до проверки.Вот проблема после того, как Google все предложили мне использовать «начальный» и передать его в форму, но это явно не работает, потому что, если я сделаю поля видимыми в форме, я вижу, что он не выбран заранее ...
viewy.py:
def addStockView(request):
wineId = request.POST.get('addStock')
if 'addStock' in request.POST:
wine = get_object_or_404(Wine, idwine=int(wineId))
userId = request.user.id
user = get_object_or_404(AuthUser, id=userId)
if request.method == 'POST':
#wineIdNew = request.COOKIES.get('wineIdToAdd')
#wineNew = get_object_or_404(Wine, idwine=wineIdNew)
form = StockForm(request.POST, initial={'fk_wine': wineNew.idwine, 'fk_auth_user': user.id})
if form.is_valid():
form.save()
return redirect('home')
else:
form = StockForm(initial={'fk_wine': wine.id,
'fk_auth_user': user.id})
response = render(request, 'addToStock.html', {'form': form})
response.set_cookie('wineIdToAdd', wineId)
return response
forms.py:
class StockForm(forms.ModelForm):
#fk_wine = ModelChoiceField(queryset=Wine.objects.all(),
# widget=HiddenInput())
#fk_auth_user = ModelChoiceField(queryset=AuthUser.objects.all(),
# widget=HiddenInput())
class Meta:
model = UserWineStock
fields = ['fk_auth_user', 'fk_wine', 'number']
Может кто-нибудь помочь мне с этим ..?