0
我是相當陌生的關係數據庫,這可能是爲什麼我有這個問題,但我有一個模型 - 後。Django模型定義的URLFields列表
我希望它具有可變數量的URL,但Django似乎只有OneToManyField,它需要一個模型(不是字段 - 哪個URLField是)。
我是相當陌生的關係數據庫,這可能是爲什麼我有這個問題,但我有一個模型 - 後。Django模型定義的URLFields列表
我希望它具有可變數量的URL,但Django似乎只有OneToManyField,它需要一個模型(不是字段 - 哪個URLField是)。
在關係數據庫設計中,表中的字段總是標量值。在你的情況下,這樣的領域將'一個網址'。您將某個集合應用到某一行的方式,您將加入該行與另一個表的行。用Django的說法,這意味着你需要兩個模型,一個用於Post
對象,另一個用於鏈接多個URL和該帖子。現在
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)
你可以通過一個urls
成員
訪問網址,但如果你想獲得郵政管理頁面也讓你添加的網址,你需要做一些技巧與InlineModelAdmin。
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)
感謝TokenMacGuy,因此,所有的帖子需要的是ForiegnKey被稱爲?就像,我不必明確定義與Post的關係? – Jono 2010-10-11 00:57:56
沒錯。沒有引用本身就是一個集合,就沒有辦法引用一組元素。關係模型有不同的處理方式,這反映在django ORM中。 – SingleNegationElimination 2010-10-11 00:59:04
嗯。 Django管理員應該能夠處理這個問題嗎?因爲現在看起來它添加了一個URLField表單。 =/ – Jono 2010-10-11 01:10:44