[PYTHON] [Django] Ich habe versucht, Zugriffsbeschränkungen durch Klassenvererbung zu implementieren.

Vorwort

Bitte verzeihen Sie den Fehler, wie er von einem Anfänger mit einem Memo geschrieben wurde. Ich mache eine Chat-App, möchte aber sicherstellen, dass nur die Teilnehmer im Raum den Chatraum sehen können. Ich habe viel Zeit damit verbracht, es zu implementieren, indem ich die Methoden in der Klassenansicht überschrieb. Es gab einen wahnsinnig einfachen Weg, also werde ich ihn vorstellen.

Hauptthema

models.py



class Room(models.Model):
     (Abkürzung)

class User(AbstractBaseUser, PermissionsMixin):
     (Abkürzung)

class JoinRoom(models.Model):#Zwischentisch
    room = models.ForeignKey(Room,on_delete=models.CASCADE)
    user = models.ForeignKey(User,on_delete=models.PROTECT)

Es ist vielleicht nicht besser, es hier zu schreiben, aber ich werde es hier der Klarheit halber zusammenfassen. Es scheint, dass get schneller ist als die Verwendung von Filtern, also mache ich das.

views.py



from django.contrib.auth.mixins import UserPassesTestMixin

class OnlyParticipantMixin(UserPassesTestMixin):
    raise_exception = True

    def test_func(self):
        try:
            exist_or_not = MyRoom.objects.get(room=self.kwargs['pk'],user=self.request.user)#Ich habe es noch nicht versucht, wenn ich ersetzen muss.
            return True
        except MyRoom.DoesNotExist:
            return False

class CommentCreateView(OnlyParticipantMixin,generic.CreateView):#Funktioniert es nicht, wenn es nicht in dieser Reihenfolge ist?
     template_name = 'hogehoge/hogehoge'

Das ist es. Wenn jemand anders als der Teilnehmer versucht zu gucken, tritt ein Fehler auf.

Referenz

https://developer.yukimonkey.com/article/20200417/

https://intellectual-curiosity.tokyo/2018/12/06/django%E3%81%AE%E8%A9%B3%E7%B4%B0%E7%94%BB%E9%9D%A2detailview%E3%81%A7%E8%87%AA%E5%88%86%E4%BB%A5%E5%A4%96%E3%81%AE%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%9A%E3%83%BC%E3%82%B8%E3%81%AB%E3%82%A2%E3%82%AF/

Recommended Posts

[Django] Ich habe versucht, Zugriffsbeschränkungen durch Klassenvererbung zu implementieren.
Ich habe versucht, PCANet zu implementieren
Ich habe versucht, StarGAN (1) zu implementieren.
Ich habe versucht, Deep VQE zu implementieren
Ich habe versucht, die Erkennung von Anomalien durch spärliches Strukturlernen zu implementieren
Ich habe versucht, eine kontroverse Validierung zu implementieren
Ich habe versucht, Realness GAN zu implementieren
Django super Einführung von Python-Anfängern! Teil 6 Ich habe versucht, die Login-Funktion zu implementieren
Ich habe versucht, die Satzklassifizierung durch Self Attention mit PyTorch zu implementieren
Ich habe versucht, PLSA in Python zu implementieren
Ich habe versucht, Autoencoder mit TensorFlow zu implementieren
Ich habe versucht, Permutation in Python zu implementieren
Ich habe versucht, PLSA in Python 2 zu implementieren
Ich habe versucht, ADALINE in Python zu implementieren
Ich habe versucht, PPO in Python zu implementieren
Ich habe versucht, CVAE mit PyTorch zu implementieren
Ich habe es mit Django versucht
Ich habe versucht, die Bayes'sche lineare Regression durch Gibbs-Sampling in Python zu implementieren
Ich habe versucht, die Blasensortierung nach Sprache zu programmieren
Ich habe versucht, das Lesen von Dataset mit PyTorch zu implementieren
Django super Einführung von Python-Anfängern! Teil 3 Ich habe versucht, die Vererbungsfunktion für Vorlagendateien zu verwenden
Ich habe versucht, TOPIC MODEL in Python zu implementieren
Ich habe versucht, eine selektive Sortierung in Python zu implementieren
Ich habe versucht, Drachenkugeln nach Adalin zu klassifizieren
[Einführung in PID] Ich habe versucht, ♬ zu steuern und zu spielen
Ich habe versucht, das Problem des Handlungsreisenden umzusetzen
Ich habe versucht, Satzklassifizierung und Aufmerksamkeitsvisualisierung durch das japanische BERT mit PyTorch zu implementieren
Ich habe versucht zu debuggen.
Ich habe versucht, ein multivariates statistisches Prozessmanagement (MSPC) zu implementieren.
Ich habe versucht, DCGAN mit PyTorch zu implementieren und zu lernen
Ich habe versucht, einen Pseudo-Pachislot in Python zu implementieren
Ich habe versucht, Drakues Poker in Python zu implementieren
Ich habe versucht, künstliches Perzeptron mit Python zu implementieren
Ich habe versucht, GA (genetischer Algorithmus) in Python zu implementieren
Ich habe versucht, Grad-CAM mit Keras und Tensorflow zu implementieren
Ich habe versucht, SSD jetzt mit PyTorch zu implementieren (Dataset)
Ich habe versucht, mit Python auf Google Spread Sheets zuzugreifen
Ich habe versucht, einen automatischen Nachweis der Sequenzberechnung zu implementieren
[Einführung] Ich habe versucht, es selbst zu implementieren, während ich den Dichotomiebaum erklärte
[Einführung] Ich habe versucht, es selbst zu implementieren, während ich erklärte, um die Dichotomie zu verstehen
Ich habe versucht, mit Quantx eine Linie mit gleitendem Durchschnitt des Volumens zu implementieren
Ich habe versucht, das grundlegende Modell des wiederkehrenden neuronalen Netzwerks zu implementieren
Ich habe versucht, PredNet zu lernen
Ich habe versucht, einen eindimensionalen Zellautomaten in Python zu implementieren
Ich habe versucht, SVM zu organisieren.
Ich habe versucht, mit Quantx einen Ausbruch (Typ der Täuschungsvermeidung) zu implementieren
Ich habe versucht, die Videoerstellung durch parallele Verarbeitung zu beschleunigen
[Einführung in die Simulation] Ich habe versucht, durch Simulation einer Koronainfektion zu spielen ♬
[Einführung in Pandas] Ich habe versucht, die Austauschdaten durch Dateninterpolation zu erhöhen ♬
Ich habe versucht, mit Hy ・ Define a class zu beginnen
Ich habe versucht, MNIST nach GNN zu klassifizieren (mit PyTorch-Geometrie).
Ich habe versucht, Linux wieder einzuführen
Ich habe versucht, ListNet of Rank Learning mit Chainer zu implementieren
Ich habe versucht, die Mail-Sendefunktion in Python zu implementieren
Ich habe versucht, Pylint vorzustellen
Ich habe versucht, Harry Potters Gruppierungshut mit CNN umzusetzen