django - 如何选择另一个表的特定字段作为表的外键?Sqlite3,Django==2.1
问题描述
我有以下型号:
class Student(AbstractUser):
email = models.EmailField(unique=True)
roll = models.CharField(max_length=200, blank=False,
unique=True, primary_key=True)
contact_no = models.DecimalField(
max_digits=10, decimal_places=0, blank=False, unique=True)
objects = UserManager()
class Event(models.Model):
type_of_event = models.ForeignKey(EventType, on_delete=models.CASCADE)
name = models.CharField(max_length=100)
description = models.TextField()
event_date = models.DateField()
venue = models.CharField(max_length=200)
entry_fee = models.FloatField()
def __str__(self):
return self.name
def get_absolute_url(self):
return reverse('dashboard')
class EventParticipants(models.Model):
event_name = models.ForeignKey(Event, on_delete=models.CASCADE)
participant_roll = models.ForeignKey(
Student, on_delete=models.CASCADE, default="123")
如何roll
将模型中的字段Student
作为表中的外键EventParticipants
。默认情况下username
,模型中的字段Student
被选为外键。
解决方案
此处的Django 文档说您可以将 ForeignKey 声明中的to_field值设置为目标模型中的任何唯一字段。
participant_roll = models.ForeignKey(
Student, on_delete=models.CASCADE, to_field='roll')
推荐阅读
- python - 在“例外”块中执行操作是一种好的编码习惯吗?
- c - 不能在程序集中调用“putchar”
- r - XML标记内的变量到R数据框中的列
- assembly - 测试所有相邻的真实位
- javascript - addEventListener e=> 是什么意思?
- c - 如何在C中标记要选择的字符
- protractor - Angular e2e 在简单的 by.css 期望中失败
- python - 使用 numpy 将 3d 点转换为新坐标系的函数
- android - 迁移到 androidx 后 Theme.AppCompat.Light.NoActionBar 无法正常工作
- java - 数据库为外键生成错误结果的问题