如何正确地在models.py文件中定义一个多对多场(how to properly define

2019-10-18 06:47发布

在我的Django应用程序,我有以下models.py:

from django.db import models
import datetime

class Job(models.Model):
    name = models.CharField(max_length = 250, null = False)
    user = models.CharField(max_length = 30, null = False)
    command = models.CharField(max_length = 1000, null = False)
    whenToRun = models.DateTimeField('Run Date', null = False)
    output = models.CharField(max_length = 100000, null = True)

class Host(models.Model):
    jobs = models.ManyToManyField(Job, blank = True)
    name = models.CharField(max_length = 100, null = False)
    hasRun = models.BooleanField(default = False)

我在与引导主机类增加了就业岗位分配https://docs.djangoproject.com/en/dev/topics/db/examples/many_to_many/ 。 我能够在没有问题添加主机(从管理页面),但是当我试图在工作中我得到了以下错误添加:

Exception at /admin/Minion/job/add
<class 'Minion.models.Host'> has no ForeignKey to <class 'Minion.models.Job'>

我尝试添加一个ManyToManyField分配到作业类,以及,但它告诉我,该名主机是不确定的。 有谁知道我能做些什么,使这个领域的正常运行? 在此先感谢您的帮助。

Answer 1:

需要声明inlinesManyToManyadmin.py

检查文档为如何声明内联

事情是这样的:

class JobInline(admin.TabularInline):
     model = Host.jobs.through


文章来源: how to properly define a ManyToMany field in the models.py file