How do you access parent object values in an admin inline

198 views
Skip to first unread message

test

unread,
Nov 22, 2017, 1:21:33 PM11/22/17
to Django users
For example:

class AnswerInLine(admin.TabularInline):
  model = Answers     

class QuestionAdmin(admin.ModelAdmin):
  inlines = [AnswerInLine]


 I want to change the model in the AnswerInLine depending on what the QuestionAdmin value is

Matemática A3K

unread,
Nov 22, 2017, 1:54:08 PM11/22/17
to django...@googlegroups.com
First save the request object in the parent of the inline, then use it in fk field in the inline. Here is an example:
 
--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscribe@googlegroups.com.
To post to this group, send email to django...@googlegroups.com.
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/7300b116-9681-46f9-8df5-aa95691f37d4%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

test

unread,
Nov 22, 2017, 3:38:50 PM11/22/17
to Django users
Thanks for the response.

I'm still kind of confused.
So I save the request by overriding the function. Then I can only read the request by overriding a function in the inline. How do I change the model in the overrided function in the inline.


On Wednesday, November 22, 2017 at 1:54:08 PM UTC-5, Matemática A3K wrote:
On Wed, Nov 22, 2017 at 3:21 PM, test <dudeo...@gmail.com> wrote:
For example:

class AnswerInLine(admin.TabularInline):
  model = Answers     

class QuestionAdmin(admin.ModelAdmin):
  inlines = [AnswerInLine]


 I want to change the model in the AnswerInLine depending on what the QuestionAdmin value is

First save the request object in the parent of the inline, then use it in fk field in the inline. Here is an example:
 
--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users...@googlegroups.com.

Matemática A3K

unread,
Nov 23, 2017, 12:19:26 AM11/23/17
to django...@googlegroups.com
On Wed, Nov 22, 2017 at 5:38 PM, test <dudeo...@gmail.com> wrote:
Thanks for the response.

I'm still kind of confused.
So I save the request by overriding the function.

You save the object in the request so you can access it from the inline for further processing, like showing or hiding something
 
Then I can only read the request by overriding a function in the inline. How do I change the model in the overrided function in the inline.

If you want to change "the model entirely", you should do several inlines (one per each model) and show the appropriate inline according to the object. Here is sample (untested) code:
 

On Wednesday, November 22, 2017 at 1:54:08 PM UTC-5, Matemática A3K wrote:


On Wed, Nov 22, 2017 at 3:21 PM, test <dudeo...@gmail.com> wrote:
For example:

class AnswerInLine(admin.TabularInline):
  model = Answers     

class QuestionAdmin(admin.ModelAdmin):
  inlines = [AnswerInLine]


 I want to change the model in the AnswerInLine depending on what the QuestionAdmin value is

First save the request object in the parent of the inline, then use it in fk field in the inline. Here is an example:
 
--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users...@googlegroups.com.
To post to this group, send email to django...@googlegroups.com.
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/7300b116-9681-46f9-8df5-aa95691f37d4%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscribe@googlegroups.com.

To post to this group, send email to django...@googlegroups.com.
Visit this group at https://groups.google.com/group/django-users.
Reply all
Reply to author
Forward
0 new messages