JSONField reference a model like One to One within the JSON
Stupid question time! :)
I don't think this is possible but I need to ask in case I'm wrong. Is it possible to create a one to one relationship to a normal Django model in the JSON of a JSONField
?
Example:
Django Model (Example):
class TheModel(models.Model):
example = models.CharField(max_length=255)
something = models.CharField(max_length=255)
dt = models.DateTimeField()
Django model in separate app (Example):
class JsonModel(models.Model):
json_stuff = JSONField(default=list)
The JSON itself will be a list of dictionaries of will have multiple layers but some need to hold a reference to the TheModel
to be presented in a template (the same way a One to One relationship would).
JSON (Example):
[{"title": "A Title", "body": [{"line": "Some text", "reference": TheModel}, {"line": "More Text", "reference": None }]}
It's looking like I'll have to loop through the JSON and insert the reference manually in the view.
Edit
Following on from @ruddra's comment. There is no consistancy in which TheModel
is referenced. If there was I would have made a normal One to One relationship.
Please note that I'm asking if it's possible not what I need to do. I am already putting the id of TheModel
where it needs to go I'm only curious to see is JSONField
can do One to One in the same why Django does ForiegnKey
fields in templates.
json django django-models django-jsonfield
add a comment |
Stupid question time! :)
I don't think this is possible but I need to ask in case I'm wrong. Is it possible to create a one to one relationship to a normal Django model in the JSON of a JSONField
?
Example:
Django Model (Example):
class TheModel(models.Model):
example = models.CharField(max_length=255)
something = models.CharField(max_length=255)
dt = models.DateTimeField()
Django model in separate app (Example):
class JsonModel(models.Model):
json_stuff = JSONField(default=list)
The JSON itself will be a list of dictionaries of will have multiple layers but some need to hold a reference to the TheModel
to be presented in a template (the same way a One to One relationship would).
JSON (Example):
[{"title": "A Title", "body": [{"line": "Some text", "reference": TheModel}, {"line": "More Text", "reference": None }]}
It's looking like I'll have to loop through the JSON and insert the reference manually in the view.
Edit
Following on from @ruddra's comment. There is no consistancy in which TheModel
is referenced. If there was I would have made a normal One to One relationship.
Please note that I'm asking if it's possible not what I need to do. I am already putting the id of TheModel
where it needs to go I'm only curious to see is JSONField
can do One to One in the same why Django does ForiegnKey
fields in templates.
json django django-models django-jsonfield
No, it's not possible in a high-level way, you just need to set the value tothemodel_instance.id
directly. Note that there's no "looping through the JSON" if you're using aJSONField
you can access its properties directly as in any pythondict
.
– dirkgroten
Nov 23 '18 at 10:00
If you have consistency in json with the reference for theTheModel
, then why don't you try to make it a FK with null True, so that it can be null able as well.
– ruddra
Nov 23 '18 at 11:01
@rudda Each reference will be to a different 'TheModel' int the database.
– James Bellaby
Nov 23 '18 at 11:39
add a comment |
Stupid question time! :)
I don't think this is possible but I need to ask in case I'm wrong. Is it possible to create a one to one relationship to a normal Django model in the JSON of a JSONField
?
Example:
Django Model (Example):
class TheModel(models.Model):
example = models.CharField(max_length=255)
something = models.CharField(max_length=255)
dt = models.DateTimeField()
Django model in separate app (Example):
class JsonModel(models.Model):
json_stuff = JSONField(default=list)
The JSON itself will be a list of dictionaries of will have multiple layers but some need to hold a reference to the TheModel
to be presented in a template (the same way a One to One relationship would).
JSON (Example):
[{"title": "A Title", "body": [{"line": "Some text", "reference": TheModel}, {"line": "More Text", "reference": None }]}
It's looking like I'll have to loop through the JSON and insert the reference manually in the view.
Edit
Following on from @ruddra's comment. There is no consistancy in which TheModel
is referenced. If there was I would have made a normal One to One relationship.
Please note that I'm asking if it's possible not what I need to do. I am already putting the id of TheModel
where it needs to go I'm only curious to see is JSONField
can do One to One in the same why Django does ForiegnKey
fields in templates.
json django django-models django-jsonfield
Stupid question time! :)
I don't think this is possible but I need to ask in case I'm wrong. Is it possible to create a one to one relationship to a normal Django model in the JSON of a JSONField
?
Example:
Django Model (Example):
class TheModel(models.Model):
example = models.CharField(max_length=255)
something = models.CharField(max_length=255)
dt = models.DateTimeField()
Django model in separate app (Example):
class JsonModel(models.Model):
json_stuff = JSONField(default=list)
The JSON itself will be a list of dictionaries of will have multiple layers but some need to hold a reference to the TheModel
to be presented in a template (the same way a One to One relationship would).
JSON (Example):
[{"title": "A Title", "body": [{"line": "Some text", "reference": TheModel}, {"line": "More Text", "reference": None }]}
It's looking like I'll have to loop through the JSON and insert the reference manually in the view.
Edit
Following on from @ruddra's comment. There is no consistancy in which TheModel
is referenced. If there was I would have made a normal One to One relationship.
Please note that I'm asking if it's possible not what I need to do. I am already putting the id of TheModel
where it needs to go I'm only curious to see is JSONField
can do One to One in the same why Django does ForiegnKey
fields in templates.
json django django-models django-jsonfield
json django django-models django-jsonfield
edited Nov 23 '18 at 12:32
James Bellaby
asked Nov 23 '18 at 9:46
James BellabyJames Bellaby
279
279
No, it's not possible in a high-level way, you just need to set the value tothemodel_instance.id
directly. Note that there's no "looping through the JSON" if you're using aJSONField
you can access its properties directly as in any pythondict
.
– dirkgroten
Nov 23 '18 at 10:00
If you have consistency in json with the reference for theTheModel
, then why don't you try to make it a FK with null True, so that it can be null able as well.
– ruddra
Nov 23 '18 at 11:01
@rudda Each reference will be to a different 'TheModel' int the database.
– James Bellaby
Nov 23 '18 at 11:39
add a comment |
No, it's not possible in a high-level way, you just need to set the value tothemodel_instance.id
directly. Note that there's no "looping through the JSON" if you're using aJSONField
you can access its properties directly as in any pythondict
.
– dirkgroten
Nov 23 '18 at 10:00
If you have consistency in json with the reference for theTheModel
, then why don't you try to make it a FK with null True, so that it can be null able as well.
– ruddra
Nov 23 '18 at 11:01
@rudda Each reference will be to a different 'TheModel' int the database.
– James Bellaby
Nov 23 '18 at 11:39
No, it's not possible in a high-level way, you just need to set the value to
themodel_instance.id
directly. Note that there's no "looping through the JSON" if you're using a JSONField
you can access its properties directly as in any python dict
.– dirkgroten
Nov 23 '18 at 10:00
No, it's not possible in a high-level way, you just need to set the value to
themodel_instance.id
directly. Note that there's no "looping through the JSON" if you're using a JSONField
you can access its properties directly as in any python dict
.– dirkgroten
Nov 23 '18 at 10:00
If you have consistency in json with the reference for the
TheModel
, then why don't you try to make it a FK with null True, so that it can be null able as well.– ruddra
Nov 23 '18 at 11:01
If you have consistency in json with the reference for the
TheModel
, then why don't you try to make it a FK with null True, so that it can be null able as well.– ruddra
Nov 23 '18 at 11:01
@rudda Each reference will be to a different 'TheModel' int the database.
– James Bellaby
Nov 23 '18 at 11:39
@rudda Each reference will be to a different 'TheModel' int the database.
– James Bellaby
Nov 23 '18 at 11:39
add a comment |
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
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53444162%2fjsonfield-reference-a-model-like-one-to-one-within-the-json%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
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.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53444162%2fjsonfield-reference-a-model-like-one-to-one-within-the-json%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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
No, it's not possible in a high-level way, you just need to set the value to
themodel_instance.id
directly. Note that there's no "looping through the JSON" if you're using aJSONField
you can access its properties directly as in any pythondict
.– dirkgroten
Nov 23 '18 at 10:00
If you have consistency in json with the reference for the
TheModel
, then why don't you try to make it a FK with null True, so that it can be null able as well.– ruddra
Nov 23 '18 at 11:01
@rudda Each reference will be to a different 'TheModel' int the database.
– James Bellaby
Nov 23 '18 at 11:39