pythonでプログラムの勉強を始めてまだ2週間目の超プログラム初心者です。
Djangoで学生のレッスン記録システムを作りたくて試行錯誤しています。
今、Models.pyの作成をしていますが、Studentモデルは「return self.name」とすると、adminページから「Student」としてデータを追加、修正、削除ができますが、Scheduleモデルは「return str(self.student)」としてstrに変換しないと、adminページでデータの追加、修正、削除ができません。
記述方法に大して違いがないのに、どうしてreturnの書き方を変えないといけないのかわかりません。
StudentモデルからScheduleにStudentのnameをForeignKeyで結んでいるからでしょうか?
まだ、pythonも勉強中でよくわかっていませんが、よろしくお願いします。
【開発環境】
Python = 3.7.1
Djando = 2.1.4
class Student(models.Model): name = models.CharField(_('student name'), max_length=30, blank=False) skype = models.CharField(_('skype'), max_length=50, blank=True) country = models.CharField(_('country'), max_length=50, blank=True) steady = models.ForeignKey(Steady, on_delete=models.SET_NULL, null=True) created_at = models.DateTimeField(default=timezone.now) updated_at = models.DateTimeField(default=timezone.now) class Meta: db_table = 'student' def __str__(self): return self.name
class Schedule(models.Model): student = models.ForeignKey(Student, on_delete=models.CASCADE, related_name="student") lesson_date = models.DateField(blank=False) article = models.CharField(_('article'), max_length=225, blank=True) content = models.TextField(_('content'), blank=True) created_at = models.DateTimeField(default=timezone.now) updated_at = models.DateTimeField(default=timezone.now) def __str__(self): return str(self.student) class Meta: db_table = 'schedule'
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/01/01 13:12
2019/01/03 07:35