I пользователи моей модели могут создавать винтовки, и эта винтовка, очевидно, связана с пользователем.
class Gun(ImageModel):
user = models.ForeignKey(User)
...
...
...
У меня есть другая модель, которая зависит от этого и должна использовать пользовательские винтовки, но когдаПользователь добавляет запись, которую я хочу показать только его винтовкам.
МТ модель выглядит следующим образом
class Trophies(ImageModel):
used_his = models.ForeignKey(Gun)
моя форма выглядит следующим образом
from django.forms import ModelForm
from django import forms
from models import Trophies
from gunsafe.models import Gun
from django.contrib.auth.models import User
class TrophiesForm(request.user, ModelForm):
used_his = forms.ModelMultipleChoiceField(queryset=Gun.objects.filter(user__id=1))
def __init__(self, user, *args, **kwargs):
super(TrophiesForm, self).__init__(*args, **kwargs)
self.fields['used_his'].queryset = User.objects.filter(pk = user)
Мне было интереснокак я могу получить текущий зарегистрированный идентификатор пользователя вместо user__id=1
Вот представление.
def edit(request, trophy_id, template_name='trophies/edit.html'):
trophy = Trophies.objects.get(pk=trophy_id)
if request.method == 'POST':
form = TrophiesForm(request.POST, request.FILES, instance=trophy)
if form.is_valid():
newform = form.save(commit=False)
newform.user = request.user
newform.save()
...
...