Django models Django模型定义URL字段列表

Django models Django模型定义URL字段列表,django-models,relational-database,Django Models,Relational Database,我对关系数据库非常陌生,这可能是我遇到这个问题的原因,但我有一个模型帖子 我希望它有可变数量的URL,但是Django似乎只有OneToManyField,它需要一个模型(而不是一个字段——URLField是什么) 在关系数据库设计中,表中的字段总是标量值。在您的情况下,这样的字段将是“url”。获取要应用于行的集合的方式是,将该行与另一个表的行联接。用django的说法,这意味着您需要两个模型,一个用于Post对象,另一个用于将多个URL链接到该Post class Post(models.M

我对关系数据库非常陌生,这可能是我遇到这个问题的原因,但我有一个模型帖子


我希望它有可变数量的URL,但是Django似乎只有OneToManyField,它需要一个模型(而不是一个字段——URLField是什么)

在关系数据库设计中,表中的字段总是标量值。在您的情况下,这样的字段将是“url”。获取要应用于行的集合的方式是,将该行与另一个表的行联接。用django的说法,这意味着您需要两个模型,一个用于
Post
对象,另一个用于将多个URL链接到该Post

class Post(models.Model):
    pass

class Url(models.Model):
    url = models.URLField()
    post = models.ForeignKey(Post)


myPost = Post.objects.all().get()
for url in myPost.url_set.all():
    doSomething(url.url)
现在,您可以通过
URL
成员访问URL

但是如果你想让Post的管理页面也允许你添加URL,你需要做一些技巧


谢谢你,所以所有的帖子都需要在ForiegnKey中引用?比如,我不必明确定义from与Post的关系?没错。如果引用本身不是一个集合,就无法引用元素集合。关系模型有不同的处理方式,这反映在django ORM.Hmm中。Django管理员应该能够处理这个问题吗?”因为现在看起来它添加了一个URLField表单=/嘿,伙计,我真的很感谢你的帮助。尽管我注意到管理员总是比我填写的字段多+3个URL字段,但这一切都正常工作了。不过这不是问题。哦,为了所有遇到相同问题的人,您必须迭代myPost.url\u set.all(),而不是myPost.url\u set。
from django.db import models
from django.contrib import admin


class Post(models.Model):
    pass

class Url(models.Model):
    url = models.URLField()
    post = models.ForeignKey(Post)


class UrlAdmin(admin.TabularInline):
    model = Url

class PostAdmin(admin.ModelAdmin):
    inlines = [UrlAdmin]

admin.site.register(Post, PostAdmin)