При проектировании реляционной базы данных поля в таблице всегда являются скалярными значениями. в вашем случае такое поле будет "url". То, как вы получаете коллекцию для применения к строке, вы соединяете эту строку со строками другой таблицы. На языке django это означало бы, что вам нужны две модели, одна для объектов 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 через urls
member
Но если вы хотите, чтобы на странице администратора Post также можно было добавлять URL-адреса, вам нужно проделать некоторые трюки с 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)