小编Shr*_*riP的帖子

将 django-treebeard 模型与另一个 django 模型作为外键链接的正确方法是什么?

我正在构建一个系统,该系统将显示城市中每个体育场周围的重要设施,如车站、火车站、医院、餐厅和酒吧等,以及它们与各个体育场的距离。我在 Django 中有两个模型,一个用于体育场,另一个用于体育场周围的设施。如果设施有多个选项,设施可以是分层的。例如

球场1:
    -医院:
        -某医院:700米
    -Restaurant:
        -中国:
            - ABC餐厅:2公里
        -意大利:
            - LMN餐厅:300米
            -某某餐厅:1.2公里

每棵树的根节点名称将与它作为外键链接到的体育场名称相同。每个体育场都有自己的树,指定了它周围的重要设施以及它们与体育场的距离。

我使用 Django-Treebeard 来创建设施树。我的设施模型是 MP_Node 类型。我正在使用管理界面添加我的数据。

当我尝试将体育场与设施树联系起来时,它会显示所有树模型中添加的每个节点。这很乱。想象一下当数据增长时。会很麻烦。

我试图将它链接为 OneToOneField,但没有任何改变。目前,我正在使用外键来链接两个模型。以下是我的实际模型:

######################## models.py ##################################
class NearByFacilities(MP_Node):
    name = models.CharField(max_length=65, blank=True, null=True)
    distance = models.DecimalField(max_digits=5, decimal_places=2, blank=True, 
    null=True)
    units = (
            ('km', 'KiloMeters'),
            ('m', 'meters')
    )
    unit = models.CharField(max_length=3, choices=units, blank=True, 
    null=True)

    def __str__(self):
        if self.name:
            return (self.name)
        else:
            return str(self.distance)





class Stadium(models.Model):
    content_type = models.ForeignKey(ContentType, on_delete=models.CASCADE)
    object_id = models.PositiveIntegerField()
    content_object = GenericForeignKey('content_type', 'object_id')
    name = models.CharField(max_length=65)
    capacity = …
Run Code Online (Sandbox Code Playgroud)

django django-models django-forms django-treebeard django-admin

5
推荐指数
0
解决办法
442
查看次数

我想将 django 模型表示为 html 页面中的表,表标题与 django 字段名称相同。我怎样才能实现这个?

我是 Django 新手。我遇到了一个问题,我觉得这个问题超出了我目前在 Django 中的能力。问题在于使用表列的标题与其相关模型字段的字符串表示相同。为了进一步理解这一点,假设我有一个如下模型:

class Car(models.Model):
   company_name = models.ForeignKey(Company,related_name='cars')
   transmission_type = models.CharField(max_length=50)
   color = models.CharField(max_length=25)
   age = models.PositiveIntegerField(blank=True,null=True)
Run Code Online (Sandbox Code Playgroud)

对于这个模型,我想生成如下 HTML 表格:

<table>
   <thead>
       <th>Company Name</th>
       <th>Transmission Type</th>
       <th>Color</th>
       <th>Age</th>
   </thead>
   <tbody>
       <tr>
           <td>{{company_name}}</td>
           <td>{{transmission_type}}</td>
           <td>{{color}}</td>
           <td>{{age}}</td>
       </tr>
   </tbody>
</table>
Run Code Online (Sandbox Code Playgroud)

我怎样才能在 Django 中实现这一目标?

python django html-table

3
推荐指数
1
解决办法
2525
查看次数