J'ai créé un service web avec Django. Il était terminé, mais j'ai vérifié à nouveau où il était pelucheux.
Exemple:
class Profile(models.Model):
~~ Définition de champ omise ~~
@receiver(post_save, sender=User)
def create_profile(sender, **kwargs):
if kwargs['created']:
user_profile = Profile.objects.get_or_create(user=kwargs['instance'])
def __str__(self):
return str(self.user)
@receiver @receiver est un signal, une fonction qui appelle le processus enregistré lorsqu'un événement se produit. Le post_save utilisé dans cet exemple signifie qu'il sera exécuté immédiatement après l'ajout ou la modification d'un enregistrement pour le modèle (User dans ce cas) spécifié par l'expéditeur.
**kwargs Si vous définissez un argument avec ** comme ** kwargs, vous pouvez spécifier n'importe quel nombre d'arguments de mot-clé. Dans la fonction, il est reçu comme un dictionnaire dans lequel le nom de l'argument est la clé clé et la valeur est la valeur. Dans cet exemple, nous prenons l'expéditeur comme argument et vérifions si l'instance a été créée avec l'instruction if.
get_or_create Si l'objet n'existe pas, il sera enregistré, et s'il existe, il ne sera pas enregistré.
def str(self) Processus appelé lorsque str ou print est appliqué à une instance
Exemple:
class CommentCreateForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
for field in self.fields.values():
field.widget.attrs['class'] = 'form-control'
class Meta:
model = Comment
fields = ('text',)
*args Cela signifie s'il faut prendre des arguments de longueur variable comme type tuple ou type dict.
class Meta class Meta est un endroit pour définir quelque chose qui n'est pas une définition de champ.
Recommended Posts