gpt4 book ai didi

python - 制作一个元素列出 "Groupe"表的一个属性,其中元素是 "Etudiant"表的记录(元组)

转载 作者:行者123 更新时间:2023-12-01 08:07:13 24 4
gpt4 key购买 nike

我创建一个数据库,其中一个表的属性之一必须是另一个表中的元组(记录)列表。我的文件中有一个“Etudiant”表和一个“Groupe”表。请问怎么做?

以下是包含相关表格的代码摘录。

from django.db import models;
from django.contrib.auth.models import User;
from django.utils import timezone;


# Table qui stockera les groupes aux quelles les étudiants appartiennent
class Groupe(models.Model):

numero_groupe = models.IntegerField();
nombre_de_membre = models.IntegerField();
liste_etudiant = ; # Here an students list;
chef_de_groupe_tp = models.CharField(max_length=100);
ue = models.ForeignKey(UE, on_delete=models.PROTECT);
date_creation = models.DateTimeField(default=timezone.now, verbose_name="Date de création");

class Meta:
verbose_name = "groupe";
ordering = ['date'];

def __str__(self):
info_groupe = ue.code_ue + " : " numero_groupe;

return self.info_groupe;


# Table qui stockera les informations concernant les étudiants
class Etudiant(models.Model):

matricule_etudiant = models.CharField(max_length=10);
user = models.OneToOneField(User); # étudiant a désormais les attributs de User.
niveau = models.CharField(max_length=10);
avatar = models.ImageField(null=True, blank=True, upload_to="avatar/etudiant/");
td = models.ManyToManyField(TD, through='Note_TD');
tp = models.ManyToManyField(TP, through='Note_TP');

class Meta:
verbose_name = "étudiant";
ordering = ['matricule_etudiant'];

def __str__(self):
info_etudiant = matricule_etudiant + " " + user.last_name + " " + user.firstname + " " + niveau;

return self.info_etudiant;

最佳答案

据我所知,django 中没有 ListField 。如果您使用 postgres 作为数据库,则可以使用 django.contrib.postgres.fields 中的 ArrayField。否则,您可以使用下面给出的解决方案,但它有其自身的局限性。 (不能像普通字段那样查询)。

import json

class Groupe(models.Model):
_liste_etudiant = models.TextField()

@property
def liste_etudiant(self):
return json.loads(self._liste_etudiant)

@property.setter
def liste_etudiant(self, value):
self._liste_etudiant = json.dumps(value)

或者,如果使用 postgres,则可以使用 django.contrib.postgres.fields 中的 JsonField。在这种情况下,您也可以在此字段上查询。

关于python - 制作一个元素列出 "Groupe"表的一个属性,其中元素是 "Etudiant"表的记录(元组),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55479651/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com