Django forms request.user

Ich meine Modellbenutzer können Gewehre erstellen und dieses Gewehr ist offensichtlich mit einem Benutzer verknüpft.

class Gun(ImageModel):
    user = models.ForeignKey(User)  
    ...  
    ...  
    ...

Ich habe ein anderes Modell, das davon abhängig ist und die Gewehre des Benutzers verwenden muss, aber wenn der Benutzer einen Datensatz hinzufügt, möchte ich nur seine Gewehre anzeigen.

mt Modell sieht wie folgt aus

class Trophies(ImageModel):  
    used_his = models.ForeignKey(Gun)

mein Formular sieht wie folgt aus

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)

Ich habe mich gefragt, wie ich die aktuell angemeldete Benutzer-ID anstelle des @ erhalten kanuser__id=1

Hier ist die Aussicht.

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()  
            ...  
            ...

Antworten auf die Frage(4)

Ihre Antwort auf die Frage