2010-01-10 1 views
0

Некоторые введение. У меня есть «планетарный» агрегатор подачи с дополнительным слоем сверху. Этот дополнительный уровень позволяет комментировать и разрабатывать агрегированные сообщения. Вот код для справки.Предварительная заполнение ForeignKey со ссылкой на Admin?

class Post(models.Model): 
    title = models.CharField() 
    published = models.DateTimeField() 

class Story(models.Model): 
    title = models.CharField() 
    post = models.ForiegnKey(Post) 

Story имеет ForeignKey к Post и когда я пишу историю, я выбираю сообщение из раскрывающегося списка. Теперь, через несколько недель, список может стать довольно непослушным. Я мог бы использовать raw_id_fields, но это немного противоречит интуиции, так как мне нужно будет найти идентификатор сообщения, в котором я нуждался.

EDIT: После ряда исследований я удалил свой вводящий в заблуждение вопрос. Я интересно, если что-то, как это возможно (при условии, что application это имя моего ... приложения.

<a href="/admin/application/story/add/?post=[post.id]">Write about this post.</a> 

Позвольте мне знать, если это нужно больше объяснений. :)

+0

До абзаца о вашей проблеме - управление отношениями родитель-ребенок по интерфейсу администратора django, когда у вас слишком много сообщений - я могу следовать за вами хорошо. Я не могу понять, что вы подразумеваете под «указать значение этого ForeignKey по ссылке ...» ... Ваша часть вопроса очень неопределенная, и я думаю, что именно по этой причине у вас нет ответов до сих пор. – cethegeek

+0

Спасибо, что поднял голову, что я немного смутил себя, вероятно, внесли свой вклад в это. :) –

ответ

1

Похоже, что администратор распознает значения GET. Таким образом,

/admin/application/story/add/?post=[post.id] 

установил бы post на правильный идентификатор. :)

0

Вы можете подумать об использовании поля автозаполнения вместо raw_id_fields.

Jannis Leidel has a good explanation, с примерами, о том, как добавить функции автозаполнения к администратору djando точно для таких случаев, как ваш.

Вам нужно будет добавить jquery в микс, но процесс не такой уж сложный.