Ich habe ein ganz einfaches Problem zu lösen. Ich habe Partner-Modell, das hat> = 0 Benutzer mit ihm verbunden:Django überprüfen, ob Objekt in ManyToMany Feld
class Partner(models.Model):
name = models.CharField(db_index=True, max_length=255)
slug = models.SlugField(db_index=True)
user = models.ManyToManyField(User)
Nun, wenn ich ein User-Objekt haben und ich einen Partner zum Gegenstand haben, was ist die Pythonic Möglichkeit zu überprüfen, ob der Benutzer zugeordnet ist ein Partner? Ich möchte im Grunde eine Anweisung, die True zurückgibt, wenn die User
mit der Partner
verknüpft ist.
Ich habe versucht:
users = Partner.objects.values_list('user', flat=True).filter(slug=requested_slug)
if request.user.pk in users:
# do some private stuff
Dies funktioniert, aber ich habe das Gefühl, es einen besseren Weg gibt. Wäre es außerdem einfach, in einen Dekorateur zu rollen, wobei ich sowohl einen benannten Parameter (slug
) als auch ein Anfrageobjekt (user
) benötige.
Jede Hilfe würde sehr geschätzt werden.
Ehrfürchtig. Ich wusste, dass es einen weniger wortreichen Weg gab. Vielen Dank. –
Wie erhöhe ich http403 in sonst? Return HttpResponseForbidden wirft Fehler – pythad
Ich rate, da ich nicht Ihren vollständigen Kontext sehen kann, aber es sieht aus wie Sie versuchen, die Klasse zurückzugeben. Stattdessen müssen Sie es instanziieren: 'return HttpResponseForbidden()'. –