如何为嵌套类别编写Django模型?

时间:2019-06-10 16:26:14

标签: ajax django django-models django-forms

我正在制作一个用于大学的班级笔记共享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)建立了一个博客,但是我找不到解决方案。请帮助

如何为此编写模型?

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使查找非常有效。

相关问题