相关疑难解决方法(0)

Django自我指称外键

我对Web应用程序和数据库的新东西都很陌生,所以这可能是一个愚蠢的问题.我想创建一个模型("CategoryModel"),其中的字段指向模型的另一个实例(其父项)的主要ID.

class CategoryModel(models.Model):
    parentId = models.ForeignKey(CategoryModel)
Run Code Online (Sandbox Code Playgroud)

我该怎么做呢?谢谢!

python django django-orm

142
推荐指数
4
解决办法
5万
查看次数

在Django中,你如何让模型参考自己?

假设我们上课了Employee.我想要一个引用同一个类的不同实例的字段.

怎么写这个?以下代码怎么样?

ref_employee= models.ForeignKey('self',null=True,blank=True)
Run Code Online (Sandbox Code Playgroud)

django django-models

31
推荐指数
2
解决办法
2万
查看次数

我在Django应用程序中的同一个类的两个对象之间有一个OneToOne关系.是否有可能强制实现这种关系的独特性?

我的应用程序中有以下内容:

class University(models.Model):
    ...
    sister_university = models.OneToOneField('self', related_name = 
                        'university_sister_university', 
                        blank=True, null=True, 
                        on_delete=models.SET_NULL)
Run Code Online (Sandbox Code Playgroud)

我只希望大学在这种关系的两个方向上与另一所大学有关.

例如,在数据库中,如果我选择大学A作为大学B的姐妹大学,我只希望被允许选择大学B作为大学A下的姐妹大学.但是,实际上,第二种关系没有得到强制执行.

例如:现在,在Django Admin网站下,如果我首先选择大学A作为大学B的姐妹大学,我仍然可以选择任何其他大学作为大学A姐妹大学的对象.我不仅限于选择大学B.

是否可以在数据库级别强制执行该唯一性?有没有更好的方法来完成我想要做的事情?

python database django database-design django-models

14
推荐指数
1
解决办法
230
查看次数

Django自我指涉关系?

我正在尝试创建模型页面,页面也应该能够有"子页面".

我的下面的模型代码一直在我的Mac(python 2.6.1)和Ubuntu 10.04(python 2.6.5)上崩溃:

from django.db import models
from django.contrib import admin

class Page(models.Model):
    slug = models.SlugField(blank=True)
    title = models.CharField(max_length=100)
    content = models.TextField(blank=True)
    children = models.ManyToManyField("self", blank=True)
    published = models.BooleanField(default=True)
    created = models.DateTimeField(blank=True, auto_now_add=True)

    def html(self):
        html = "<li>"
        html += self.title

        children = self.children.all()
        if len(children) > 0:

            for page in children:
                html += page.html()

        html += "</li>"
        return html

    def __unicode__(self):
        return self.title


class PageAdmin(admin.ModelAdmin):
    prepopulated_fields = {'slug': ('title',)}


admin.site.register(Page, PageAdmin)
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?或者这种HTML渲染是否属于视图?

谢谢.

python django django-models

6
推荐指数
2
解决办法
6836
查看次数