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