2011-04-20 72 views
2

我會如何從外鍵預填充slug字段?下面是如何我的一些模型都是建立:從Django中的外鍵預填充slug字段

Class Title(models.Model): 
    title = models.CharField(max_length=256) 
    slug = models.SlugField() 

class Issue(models.Model): 
    title = models.ForeignKey(Title) 
    number = models.IntegerField(help_text="Do not include the '#'.") 
    slug = models.SlugField() 

admin.py:

class IssueAdmin (admin.ModelAdmin):  
    prepopulated_fields = {"slug": ("title",)}  
admin.site.register(Issue, IssueAdmin) 

什麼問題預填充是外鍵的ID,但我想我需要它來preopulate的外鍵的slu。。我會如何去做這件事?我正在使用Django 1.3。我檢查了其他線程,但他們似乎指的是幾年前的Django版本不再工作。

我需要標題來顯示問題列表。到目前爲止,它的工作。您可以點擊問題鏈接查看問題顯示的內容。

我覺得如果返工的標題抽象類的方式Skidoosh不會讓我查看對象的子集....

回答

2

如果您檢查文檔(http://docs.djangoproject.com/ en/dev/ref/contrib/admin /#django.contrib.admin.ModelAdmin.prepopulated_fields)它表明你不能引用外鍵字段。

看着你設計這樣豈不更好的工作:

class BaseModel(models.Model): 
    title = models.CharField(max_length=256) 
    slug = models.SlugField() 

class Issue(BaseModel): 
    number = models.IntegerField(help_text="Do not include the '#'.") 

class ComicBookSeries(BaseModel): 
    issues = models.ForeignKey(Issue) 

您需要的順序聲明的類!

希望有幫助!

+0

OH!你是對的...這將工作。謝謝。 – AAA 2011-04-20 11:42:04

+0

等等,會這樣做嗎?家長之子模型允許我顯示與問題相關的標題列表? – AAA 2011-04-20 11:48:39

+0

你能給我一個你試圖解決的問題的簡單例子嗎?我應該能夠從中引導你。 – 2011-04-20 12:41:31