我正在制作一个用于大学的班级笔记共享django(2.1)网站,其中将嵌套类别和子类别:
|- Electronic
|- Mechanical
| |- Automobile
| |- Car Design
|- Chemistry
这些类别和子类别将由admin-user创建,并且始终可以通过更改其parent_id来重新排序它们,类别表嵌套如下,
id parent_id category
---------------------------------
1 NULL Electronic
2 NULL Mechanical
3 2 Automobile
4 3 Car Design
5 NULL Chemistry
因此,我需要为此编写一个模型。 我已经用django(2.1)建立了一个博客,但是我找不到解决方案。请帮助
如何为此编写模型?
答案 0 :(得分:1)
您可以使用django-mptt 为您的数据结构建模。相关的Django模型如下所示:
<!DOCTYPE HTML>
<link rel="stylesheet" href="assets/styles/normalize.css">
<link rel="stylesheet" href="assets/styles/main.css">
<meta name=”viewport” content=”width=device-width, initial-scale=1″>
<html>
<style>
html {
background: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), url(http://www.superchargedfood.com/wp-content/uploads/2015/06/HEALTHY-LATIN-2.jpg);
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
}
.header-right
{
font-family: Snell Roundhand;
font-size: 30px;
color: white;
text-align: right;
margin-top: -75px;
margin-right: 30px;
}
#green{
background-color: #C19A6B;
height: 375px;
background: rgba(193, 154, 107, 0.7);
margin-left: 12%;
margin-right: 12%;
margin-top: 3.75%;
border-radius: 37.5px;
}
#green1{
background-color: #EDC9AF;
height: 375px;
background: rgba(237, 201, 175, 0.7);
margin-left: 12%;
margin-right: 12%;
margin-top: 2.25%;
border-radius: 37.5px;
}
#green2{
background-color: #C19A6B;
height: 375px;
background: rgba(193, 154, 107, 0.7);
margin-left: 12%;
margin-right: 12%;
margin-top: 2.25%;
border-radius: 37.5px;
}
#greenText{
color:white;
font-family:Arial, Helvetica, sans-serif;
text-align: right;
font-size: 1rem;
position: absolute;
margin-left: 28%;
margin-top: 10%;
margin-right: 20%;
max-width: 525px;
text-align: center;
}
img{
width: 300px;
height: auto;
}
</style>
<h1 > <span style="font-family:Snell Roundhand; margin-left: 525px; color: white; font-size: 67.5px;"> Joey's Resturant </span> <h1>
<div class="header-right">
<a style="color: white;" href="Drink Chooser copy.php">Order</a>
<a style="color: white;"href="email.php">Contact</a>
<a style="color: white;"href="Home page.html">About</a>
<a style="color: white;"href="menue.php">Menue</a>
</div>
<div id="green">
<div id="greenText">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed vel suscipit dui. Cras a risus a massa semper dictum. Nunc ex mi, varius nec mauris eget, tempus tempus libero. Suspendisse. </div>
<img id="pics" style=" opacity:1; margin-top: 3%; margin-left: 3%;" src="pics/shop1-copy.png" >
</div>
<div id="green1">
<div id="greenText">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed vel suscipit dui. Cras a risus a massa semper dictum. Nunc ex mi, varius nec mauris eget, tempus tempus libero. Suspendisse.
</div>
<img id="pics" style=" opacity:1; margin-top: 3%; margin-left: 3%;" src="pics/shop2.png" >
</div>
<div id="green2">
<div id="greenText">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed vel suscipit dui. Cras a risus a massa semper dictum. Nunc ex mi, varius nec mauris eget, tempus tempus libero. Suspendisse. </div>
<img id="pics" style=" opacity:1; margin-top: 3%; margin-left: 3%;" src="pics/dogs.png" >
</div>
</html>
请注意,您不必严格class Category(MPTTModel):
parent = TreeForeignKey('self', null=True, blank=True, related_name='subcategories')
name = CharField(max_length=100)
,因为您可以随时使用
标准的Django django-mptt
而不是ForeignKey
,
但是TreeForeignKey
使查找非常有效。