Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 创建依赖Django中另一个模型的模型选择字段_Python_Django - Fatal编程技术网

Python 创建依赖Django中另一个模型的模型选择字段

Python 创建依赖Django中另一个模型的模型选择字段,python,django,Python,Django,我是Django的新手,但我正在尝试用另一个模型VideoTypes中的视频类型替换categories常量。我该怎么做 from django.db import models # from django.contrib.auth import get_user_model # User = get_user_model() CATEGORIES = ( ('Executive Speaker Series', 'Executive Speaker Series'), ('

我是Django的新手,但我正在尝试用另一个模型VideoTypes中的视频类型替换categories常量。我该怎么做

from django.db import models

# from django.contrib.auth import get_user_model

# User = get_user_model()
CATEGORIES = (
    ('Executive Speaker Series', 'Executive Speaker Series'),
    ('College 101', 'College 101'),
    ('Fireside Chat', 'Fireside Chat'),
    ('Other', 'Other')
)


# Create your models here.
class VideoType(models.Model):
    type = models.CharField(max_length=255)
    def __str__(self):
        return self.type

class Video(models.Model):
    title = models.CharField(max_length=255)
    link = models.CharField(max_length=1000)
    category = models.CharField(choices=CATEGORIES, max_length=255)
    timestamp = models.DateTimeField(auto_now_add=True)
    # owner = models.ForeignKey(User, on_delete=models.CASCADE)

    def __str__(self):
        return self.title
你在找场地。它还需要设置删除相关模型时的行为,请参见说明

VideoType(models.Model):
    type = models.CharField(max_length=255)
    def __str__(self):
        return self.type

class Video(models.Model):
    title = models.CharField(max_length=255)
    link = models.CharField(max_length=1000)
    category = models.ForeignKey(VideoType, on_delete=models.SET_NULL) # category is now referring to VideoType model
    timestamp = models.DateTimeField(auto_now_add=True)

您拥有的实现需要具有变量而不是字符串的元组

类别
变量更改为

CATEGORIES = (
    (Executive_Speaker_Series, 'Executive Speaker Series'),
    (College_101, 'College 101'),
    (Fireside_Chat, 'Fireside Chat'),
    (Other, 'Other')
)