models模型的基础属性和方法(可以理解为数据库中操作库,表,字段的语法)

class Test(models.Model):
    """
    auto_created=True   :自动创建
    auto_now = True     :修改时间
    auto_now_add = True :创建时间
    CASCADE             :级联删除
    default             :默认值
    error_messages=None :错误提示
    help_text           :提示文本
    unique=True         :不允许重复
    upload_to           :设置上传目录名或文件名
    verbose_name        :字段的属性名称

    """


    # 整数自增类型
    models.AutoField


    # 一个真/假字段。
    models.BooleanField('是否有效', default = True)


    models.CharField(max_length=100)
    models.CharField('文章大分类', max_length = 20)
    models.CharField('标题', max_length = 20, blank = True, null = True, help_text = '标题可以为空')
    models.CharField('跳转链接', max_length = 200, default = '#', help_text = '图片跳转的超链接,默认#表示不跳转')


    models.DateTimeField(verbose_name = '修改时间', auto_now = True)
    models.DateTimeField(verbose_name = '创建时间', auto_now_add = True)
    models.DateTimeField(default=timezone.now)


    # 多对一关系
    models.ForeignKey(BigCategory, on_delete = models.CASCADE, verbose_name = '大分类')


    models.ImageField(upload_to = 'avatar/%Y%m%d/', blank = True)
    models.IntegerField('阅览量', default = 0)
    models.IntegerField('编号', help_text = '编号决定图片播放的顺序,图片不要多于5张')


    models.ManyToManyField(Tag, verbose_name = '标签')
    models.ManyToManyField(Keyword, verbose_name = '文章关键词',
                                      help_text = '文章关键词,用来作为SEO中keywords,最好使用长尾词,3-4个足够')

    # 是某事物的简短标签
    models.SlugField(unique = True)


    models.TextField()
    models.TextField('描述', max_length = 240, default = settings.SITE_DESCRIPTION,
                                   help_text = '用来作为SEO中description,长度参考SEO标准')

    models.URLField('友链地址', help_text = '请填写http或https开头的完整形式地址')
    models.URLField('个人网址', blank = True, help_text = '提示:网址必须填写以http开头的完整形式')


    class Meta:
        """
        提示:当您要将一些公共信息放入许多其他模型时,抽象基类很有用。
        abstract:抽象基类(这样,该模型将不会用于创建任何数据库表。相反,当将其用作其他模型的基类时,会将其字段添加到子类的字段中。)
        app_label:声明其所属的应用程序名称
        base_manager_name:告诉Django使用哪个类
        default_manager_name:设置默认的manager
        db_table:模型的数据库表的名称
        get_latest_by:获取一个字段
        order_with_respect_to:对选中的字段安排合理的顺序
        ordering:安排顺序
        permissions:创建此对象时可进入权限表的额外权限
        default_permissions:可以自定义此列表
        proxy:是否是代理模型
        indexes:模型上定义的索引列表
        verbose_name:对象的名称
        verbose_name_plural:对象的复数名称
        """
        abstract = True
        verbose_name = '大分类'
        verbose_name_plural = verbose_name
        ordering = ('-created',) # '-created' 表明数据应该以倒序排列


    def __str__(self):
        """
        返回一个或多个字段
        """
    def get_absolute_url(self):
        """
        告诉Django如何计算对象的规范URL
        """
    def get_pre(self):
        """
        获取上一个对象
        """
    def get_next(self):
        """
        获取下一个对象
        """
    def items(self):
        """
        需要显示的内容条目,这个可以自己挑选一些热门或者最新的博客
        """
    def item_title(self, item):
        """
        显示的内容的标题,这个才是最主要的东西
        """
    def item_description(self, item):
        """
        显示的内容的描述
        """
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
在Django使用Dropzone,并将上传的文件与一个文件模型关联起来,您可以按照以下步骤进行操作: 1. 定义文件模型:首先,您需要定义一个文件模型来存储上传的文件的相关信息。例如,您可以在models.py文件定义一个名为`FileModel`的模型,其包含一个`FileField`字段用于存储上传的文件。 ```python from django.db import models class FileModel(models.Model): file = models.FileField(upload_to='uploads/') # 其他字段方法... ``` 在上面的示例,`upload_to`参数指定了文件上传的目录路径。 2. 创建单:接下来,您需要创建一个单类来处理Dropzone上传的文件。您可以使用Django的内置单功能来定义一个单类,并将其与文件模型关联起来。 ```python from django import forms class FileUploadForm(forms.ModelForm): class Meta: model = FileModel fields = ['file'] ``` 在上面的示例,我们使用了`ModelForm`来定义一个单类,并将其与`FileModel`模型关联起来。指定`fields`属性为`['file']`以仅显示文件字段。 3. 编写视图:然后,您需要编写一个视图函数来处理单的提交和文件的保存。在视图函数,您可以将上传的文件与文件模型进行关联,并保存到数据库。 ```python from django.shortcuts import render def upload(request): if request.method == 'POST': form = FileUploadForm(request.POST, request.FILES) if form.is_valid(): file_instance = form.save() # 保存单数据到数据库 # 其他操作,例如返回成功页面或其他处理 return render(request, 'upload_success.html', {'file_instance': file_instance}) else: form = FileUploadForm() return render(request, 'upload.html', {'form': form}) ``` 在上面的示例,我们首先实例化`FileUploadForm`并传递`request.POST`和`request.FILES`作为参数。接下来,我们检查单是否有效,如果有效则调用`form.save()`方法将数据保存到数据库。然后,您可以执行其他操作,例如返回成功页面,并将文件实例传递给模板以进行显示或其他处理。 4. 创建模板:最后,您需要创建一个模板文件来显示上传单和上传成功的页面。根据您的需求,您可以创建名为`upload.html`和`upload_success.html`的模板文件,并使用Django模板语法来显示单和相关信息。 这是一个简单的示例模板代码: upload.html: ```html <form method="post" enctype="multipart/form-data"> {% csrf_token %} {{ form }} <input type="submit" value="上传"> </form> ``` upload_success.html: ```html <h2>上传成功</h2> <p>已上传文件:{{ file_instance.file.name }}</p> ``` 以上是一个基本的使用Dropzone与文件模型关联的示例。您可以根据实际需求进行修改和扩展。 希望这对您有所帮助!如果您有任何疑问,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

迷心兔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值