How to link two models, each with its own template using foreignKey in Django










0















I want to link two models using foreignKey, The problem is when i try to do that, one model does not get foreignKey value for the next model in the database table.
The aim is for user to fill information on the first page (have its own model and template) then click next (fill more info in the next page having its own model and template) then click next for the same logic. then when other users view this post it must show all content from different models in one page. here is my code.



1st model



class Map(models.Model):
user = models.ForeignKey(User, default=None, blank=True, null=True, on_delete=models.CASCADE)
name = models.CharField(max_length=100)
position = GeopositionField()


HAVING ITS OWN TEMPLATE



2nd Model



class Post(models.Model):
parent = models.ForeignKey("self", default=None, blank=True, null=True, on_delete=models.CASCADE)
user = models.ForeignKey(settings.AUTH_USER_MODEL, default=None, on_delete=models.CASCADE)
title = models.CharField(max_length=50)
content = models.TextField()

map = models.ForeignKey(Map, related_name='mapkey', default=None, blank=True, null=True, on_delete=models.CASCADE)


HAVING ITS OWN TEMPLATE BUT also has serializer method(API) below:



class PostModelSerializer(serializers.ModelSerializer):
user = UserDisplaySerializer(read_only=True)
parent = ParentPostModelSerializer()

map = serializers.SerializerMethodField()

class Meta:
start_date = forms.DateField(widget = forms.SelectDateWidget())
end_date = forms.DateField(widget = forms.SelectDateWidget())
model = Post
fields = [
'id',
'user',
'title',
'content'
'image',

'map',

]


Please focus only on the map field as its isolated in the above codes
everything works perfectly, but the foreignKey. also i didnt see the need to include all the code here but snippets.



i have been struggling with this for days now. do i need to write an api for 1st model also? for views i used class based views.



the database table for model 2, on the map field it shows null all the time.
I have i have provided enough information.Thanks










share|improve this question






















  • How are you creating a Post? Are you making a request to the API to do that, or is that done via a form post from a template?

    – Will Keeling
    Nov 14 '18 at 15:32











  • via form, which creates an api.. then show api data to the view(page). i just dont know how to go about this.

    – user8117830
    Nov 14 '18 at 19:37















0















I want to link two models using foreignKey, The problem is when i try to do that, one model does not get foreignKey value for the next model in the database table.
The aim is for user to fill information on the first page (have its own model and template) then click next (fill more info in the next page having its own model and template) then click next for the same logic. then when other users view this post it must show all content from different models in one page. here is my code.



1st model



class Map(models.Model):
user = models.ForeignKey(User, default=None, blank=True, null=True, on_delete=models.CASCADE)
name = models.CharField(max_length=100)
position = GeopositionField()


HAVING ITS OWN TEMPLATE



2nd Model



class Post(models.Model):
parent = models.ForeignKey("self", default=None, blank=True, null=True, on_delete=models.CASCADE)
user = models.ForeignKey(settings.AUTH_USER_MODEL, default=None, on_delete=models.CASCADE)
title = models.CharField(max_length=50)
content = models.TextField()

map = models.ForeignKey(Map, related_name='mapkey', default=None, blank=True, null=True, on_delete=models.CASCADE)


HAVING ITS OWN TEMPLATE BUT also has serializer method(API) below:



class PostModelSerializer(serializers.ModelSerializer):
user = UserDisplaySerializer(read_only=True)
parent = ParentPostModelSerializer()

map = serializers.SerializerMethodField()

class Meta:
start_date = forms.DateField(widget = forms.SelectDateWidget())
end_date = forms.DateField(widget = forms.SelectDateWidget())
model = Post
fields = [
'id',
'user',
'title',
'content'
'image',

'map',

]


Please focus only on the map field as its isolated in the above codes
everything works perfectly, but the foreignKey. also i didnt see the need to include all the code here but snippets.



i have been struggling with this for days now. do i need to write an api for 1st model also? for views i used class based views.



the database table for model 2, on the map field it shows null all the time.
I have i have provided enough information.Thanks










share|improve this question






















  • How are you creating a Post? Are you making a request to the API to do that, or is that done via a form post from a template?

    – Will Keeling
    Nov 14 '18 at 15:32











  • via form, which creates an api.. then show api data to the view(page). i just dont know how to go about this.

    – user8117830
    Nov 14 '18 at 19:37













0












0








0








I want to link two models using foreignKey, The problem is when i try to do that, one model does not get foreignKey value for the next model in the database table.
The aim is for user to fill information on the first page (have its own model and template) then click next (fill more info in the next page having its own model and template) then click next for the same logic. then when other users view this post it must show all content from different models in one page. here is my code.



1st model



class Map(models.Model):
user = models.ForeignKey(User, default=None, blank=True, null=True, on_delete=models.CASCADE)
name = models.CharField(max_length=100)
position = GeopositionField()


HAVING ITS OWN TEMPLATE



2nd Model



class Post(models.Model):
parent = models.ForeignKey("self", default=None, blank=True, null=True, on_delete=models.CASCADE)
user = models.ForeignKey(settings.AUTH_USER_MODEL, default=None, on_delete=models.CASCADE)
title = models.CharField(max_length=50)
content = models.TextField()

map = models.ForeignKey(Map, related_name='mapkey', default=None, blank=True, null=True, on_delete=models.CASCADE)


HAVING ITS OWN TEMPLATE BUT also has serializer method(API) below:



class PostModelSerializer(serializers.ModelSerializer):
user = UserDisplaySerializer(read_only=True)
parent = ParentPostModelSerializer()

map = serializers.SerializerMethodField()

class Meta:
start_date = forms.DateField(widget = forms.SelectDateWidget())
end_date = forms.DateField(widget = forms.SelectDateWidget())
model = Post
fields = [
'id',
'user',
'title',
'content'
'image',

'map',

]


Please focus only on the map field as its isolated in the above codes
everything works perfectly, but the foreignKey. also i didnt see the need to include all the code here but snippets.



i have been struggling with this for days now. do i need to write an api for 1st model also? for views i used class based views.



the database table for model 2, on the map field it shows null all the time.
I have i have provided enough information.Thanks










share|improve this question














I want to link two models using foreignKey, The problem is when i try to do that, one model does not get foreignKey value for the next model in the database table.
The aim is for user to fill information on the first page (have its own model and template) then click next (fill more info in the next page having its own model and template) then click next for the same logic. then when other users view this post it must show all content from different models in one page. here is my code.



1st model



class Map(models.Model):
user = models.ForeignKey(User, default=None, blank=True, null=True, on_delete=models.CASCADE)
name = models.CharField(max_length=100)
position = GeopositionField()


HAVING ITS OWN TEMPLATE



2nd Model



class Post(models.Model):
parent = models.ForeignKey("self", default=None, blank=True, null=True, on_delete=models.CASCADE)
user = models.ForeignKey(settings.AUTH_USER_MODEL, default=None, on_delete=models.CASCADE)
title = models.CharField(max_length=50)
content = models.TextField()

map = models.ForeignKey(Map, related_name='mapkey', default=None, blank=True, null=True, on_delete=models.CASCADE)


HAVING ITS OWN TEMPLATE BUT also has serializer method(API) below:



class PostModelSerializer(serializers.ModelSerializer):
user = UserDisplaySerializer(read_only=True)
parent = ParentPostModelSerializer()

map = serializers.SerializerMethodField()

class Meta:
start_date = forms.DateField(widget = forms.SelectDateWidget())
end_date = forms.DateField(widget = forms.SelectDateWidget())
model = Post
fields = [
'id',
'user',
'title',
'content'
'image',

'map',

]


Please focus only on the map field as its isolated in the above codes
everything works perfectly, but the foreignKey. also i didnt see the need to include all the code here but snippets.



i have been struggling with this for days now. do i need to write an api for 1st model also? for views i used class based views.



the database table for model 2, on the map field it shows null all the time.
I have i have provided enough information.Thanks







django python-3.x django-models django-rest-framework django-serializer






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Nov 14 '18 at 14:05









user8117830user8117830

1




1












  • How are you creating a Post? Are you making a request to the API to do that, or is that done via a form post from a template?

    – Will Keeling
    Nov 14 '18 at 15:32











  • via form, which creates an api.. then show api data to the view(page). i just dont know how to go about this.

    – user8117830
    Nov 14 '18 at 19:37

















  • How are you creating a Post? Are you making a request to the API to do that, or is that done via a form post from a template?

    – Will Keeling
    Nov 14 '18 at 15:32











  • via form, which creates an api.. then show api data to the view(page). i just dont know how to go about this.

    – user8117830
    Nov 14 '18 at 19:37
















How are you creating a Post? Are you making a request to the API to do that, or is that done via a form post from a template?

– Will Keeling
Nov 14 '18 at 15:32





How are you creating a Post? Are you making a request to the API to do that, or is that done via a form post from a template?

– Will Keeling
Nov 14 '18 at 15:32













via form, which creates an api.. then show api data to the view(page). i just dont know how to go about this.

– user8117830
Nov 14 '18 at 19:37





via form, which creates an api.. then show api data to the view(page). i just dont know how to go about this.

– user8117830
Nov 14 '18 at 19:37












0






active

oldest

votes











Your Answer






StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");

StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);

else
createEditor();

);

function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);



);













draft saved

draft discarded


















StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53302076%2fhow-to-link-two-models-each-with-its-own-template-using-foreignkey-in-django%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown

























0






active

oldest

votes








0






active

oldest

votes









active

oldest

votes






active

oldest

votes















draft saved

draft discarded
















































Thanks for contributing an answer to Stack Overflow!


  • Please be sure to answer the question. Provide details and share your research!

But avoid


  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.

To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53302076%2fhow-to-link-two-models-each-with-its-own-template-using-foreignkey-in-django%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







這個網誌中的熱門文章

What does pagestruct do in Eviews?

Dutch intervention in Lombok and Karangasem

Channel Islands