Ich habe, was ich hoffe, ist eine einfache Frage.Django relationale Datenbank Modelle
Ich mache eine Anwendung, die ein Baum wie Layout mit jsTree mit Django hat. Momentan hat jeder der Knoten im Baum ein eigenes Objekt, aber ich brauche mehrere Bäume, also suche ich alle Knoten für einen Baum mit einem anderen Objekt zu verbinden, das einen ganzen Baum mit allen Knoten darstellt.
Hoffentlich macht das oben Sinn. Von dem, was ich sagen kann, brauche ich eine Fremdschlüsselbeziehung zwischen den Knoten und dem gesamten Baumobjekt/Modell. Im Idealfall könnte mir jemand aufzeigen, wie man die Fremdschlüsselbeziehung richtig schreibt, und dann, wie ich ein Fulltree-Objekt auf der Clientseite potentiell instanziieren würde?
Vielen Dank für jede Hilfe und Anregungen.
Aktualisiert Code: Modell
from django.db import models
class StoringJSON(models.Model):
parent = models.CharField(null=True, max_length=50)
id = models.CharField(primary_key=True, max_length=50, unique=True)
text = models.CharField(null=True, max_length=50)
tree = models.Foreignkey(FullTree)
class FullTree(models.Model):
pass
Serializer
from rest_framework import serializers
from treetool.models import StoringJSON
from django.contrib.auth.models import User
class TreeSerializer(serializers.ModelSerializer):
owner = serializers.ReadOnlyField(source='owner.username')
class Meta:
model = StoringJSON
fields = ('id', 'text', 'parent')
Ansicht
from django.shortcuts import render
from django.contrib.auth.decorators import login_required
from django.db import models
@login_required
def tree(request):
return render(request, 'treetool/tree.html')
from treetool.models import StoringJSON
from treetool.serializers import TreeSerializer
from rest_framework import generics
class TreeList(generics.ListCreateAPIView):
queryset = StoringJSON.objects.all()
serializer_class = TreeSerializer
class TreeDetail(generics.RetrieveUpdateDestroyAPIView):
queryset = StoringJSON.objects.all()
serializer_class = TreeSerializer
Haben Sie versucht, "django Fremdschlüssel" zu googeln? –
Ja - ich verstehe, dass ich ein Fremdschlüsselattribut erstellen muss, das auf ein anderes Modell verweist, aber ich weiß nicht, wie ich danach arbeiten soll – Kevin
Veröffentlichen Sie den Code, den Sie bisher haben. –