【问题标题】:django adding values to foerignkey fielddjango 向 foerignkey 字段添加值
【发布时间】:2023-03-31 14:25:01
【问题描述】:

我有一个简单的应用程序,它要求每个员工可以有多个文件,所以我创建了两个模型,一个是 Employee,另一个是 Files

class Files(models.Model):
    files = models.FileField(upload_to='files')

class Employee(models.Model):
    name = models.CharField(max_length=200)
    email = models.EmailField()
    cv = models.ForeignKey(
        Files, on_delete=models.CASCADE)

当我尝试上传文件时,它给了我一个错误。

Cannot assign "'list-employees.png'": "Employee.cv" must be a "Files" instance.

Exception Type:     ValueError

【问题讨论】:

  • 我认为您正在尝试将上传的文件直接分配给员工实例。根据您的模型,您应该首先使用该文件创建一个Files 实例,然后分配Files 实例到employee.cv

标签: django django-models


【解决方案1】:

你把它倒过来了:

class Files(models.Model):
    files = models.FileField(upload_to='files')
    employee = models.ForeignKey('Employee', on_delete=models.CASCADE, related_name='files')

class Employee(models.Model):
    name = models.CharField(max_length=200)
    email = models.EmailField()

您可以调用my_employee.files访问员工档案

然后,您将需要更新您的表单(假设您正在使用一个),以处理关系。 Here you can see how

【讨论】:

    猜你喜欢
    • 2020-11-26
    • 2017-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-26
    • 2021-12-20
    相关资源
    最近更新 更多