在htm中显示来自多个Django模型的详细数据

2024-05-23 14:08:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我有下面的Django型号。如您所见,每个菌株的目录都是动态的,Photos_save model内嵌到菌株模型中(它允许我为每个菌株保存多张照片)。我想了解每种菌株的详细情况以及与之相关的图片。你们中有谁能帮助我完成这个任务所需的views.py和HTML代码吗?我是Django的新手,到目前为止,我已经成功地在索引页上显示了该菌株的所有信息,包括照片(但我希望用户能够单击每个菌株的名称并查看详细视图)

class Strain(models.Model):
    """;
    Model representing strains.
    """
    type_strain = (
        ('W', 'Wild Type'),
        ('G', 'GMO'),
        ('P', 'Prospected'),
    )

    def strain_directory_path(instance, filename):
        return 'strain_{0}/{1}'.format(instance.strain_name, filename)

    strain_name = models.CharField(max_length=100, blank=False, null=True, default=None)
    strain_description = models.CharField(max_length=500, blank=True, null=True, default=None)
    data_of_generation = models.DateField(null=True, blank=True, default= None)
    strain_source = models.CharField(max_length=500, blank=True, null=True, default=None)
    strain_parent = models.ForeignKey('Strain', null=True, blank = True, on_delete= models.CASCADE, default= None)
    strain_type = models.CharField(max_length=1 , blank=True, null=True, default=None, choices= type_strain)

class Photos_save(models.Model):
    import datetime
    def strain_directory_path(instance, filename):
        return 'strain_{0}/{1}'.format(instance.strain_name, filename)



    strain_name = models.ForeignKey(Strain, on_delete=models.CASCADE, default= None)
    upload_photo = models.FileField(upload_to= strain_directory_path, default= None)
    photo_description = models.CharField(max_length= 200, default= None, blank= True)
    photo_upload_date = models.DateField(blank=True, default=datetime.date.today)


    def __str__(self):
        """
        String for representing the Model object.
        """
        return '{0}'.format(self.strain_name)

    def get_absolute_url(self):
        """
        Returns the url to access a particular photo instance.
        """
        return reverse('photo-detail', args=[str(self.id)])

Tags: instancenamenonetruedefaultmodelmodelsnull