Django 中与现有对象的多对一关系

Many to One Relation in Django With Existing Objects

我昨天开始学习 Django,但在基于我之前创建的对象创建 多对一关系 时遇到了一些麻烦。

models.py

# -*- coding: utf-8 -*-
from django.db import models

class Item(models.Model):
    code = models.AutoField(primary_key=True)
    name = models.CharField(max_length=150, unique=True)
    
    class Meta:
        ordering = ('name', 'code')

    def __unicode__(self):
        return self.name


class Product(models.Model):
    code =  models.AutoField(primary_key=True)
    name = models.CharField(max_length=150, unique=True)
    price = models.DecimalField(max_digits=5, decimal_places=2)
    photo = models.ImageField(null=True, blank=True, upload_to='/img/products')
    items = models.ForeignKey('Item')

    class Meta:
        ordering = ('name', 'code')

    def __unicode__(self):
        return self.name

admin.py

# -*- coding: utf-8 -*-
from django.contrib import admin
from Cadastro.models import Item, Product

class ItemAdmin(admin.ModelAdmin):
    model = Item
    list_display = ['code', 'name']
    list_filter = []
    search_fields = ['name', 'code']
    save_on_top = True


class ProductAdmin(admin.ModelAdmin):
    model = Product
    list_display = ['name', 'price']
    list_filter = []
    search_fields = ['name']
    save_on_top = True

admin.site.register(Item, ItemAdmin)
admin.site.register(Product, ProductAdmin)

问题:

我的问题是:

items = models.ForeignKey('Item')

我想先创建各种 Item 对象。

之后,当我创建 Products 时,我想查看所有 Items 和 [=39] 的列表=] 许多项目成为 Product.

的一部分

你们的关系走错了路。如果一个 Product 可以有多个 Item,则从 ItemProduct 创建一个 ForeignKey。对于 Product 上的 ForeignKey,您是说每个产品只有一个 Item,但每个 Item 可以属于多个 Product

文档有更多详细信息和示例: https://docs.djangoproject.com/en/1.7/topics/db/examples/many_to_one/