首页>>后端>>Python->django怎么给图片定义类(django html图片路径怎么设置)

django怎么给图片定义类(django html图片路径怎么设置)

时间:2023-12-06 本站 点击:0

导读:本篇文章首席CTO笔记来给大家介绍有关django怎么给图片定义类的相关内容,希望对大家有所帮助,一起来看看吧。

怎么自定义django的imagefield的外观

在models里的定义:

class ImageStore(models.Model):

name = models.CharField(max_length=150,null=True)

img = models.ImageField(upload_to='img')

class Meta:

db_table = 'ImageStore'

django 中template 怎么使用model自定义的方法

django model中使用多语言支持的快速方法, 该方法通过建立自定义的template tag 选取model中重复的语言field来达到多语言显示的目的.

假设我们有这样一个models.py, 某一个model中包含多个重复的field, 每个重复的field都是用来保存其对应的显示语言:

class MyObject(models.Model):

name = models.CharField(max_length=50)

title_en = models.CharField(max_length=50)

title_es = models.CharField(max_length=100)

title_fr = models.CharField(max_length=100)

description_en = models.CharField(max_length=100)

description_es = models.CharField(max_length=100)

description_fr = models.CharField(max_length=100)

class MyOtherObject(models.Model):

name = models.CharField(max_length=50)

content_en = models.CharField(max_length=200)

content_es = models.CharField(max_length=200)

content_fr = models.CharField(max_length=200)

注意, 我们将下划线和语言代码作为后缀放在对应的field后面, 这将作为一个语言的查找标记.

然后我们在settings.py中添加需要翻译的field名:

TRANSLATION_FIELDS = ('title', 'description', 'content')

在项目目录中添加templatetags目录(不要忘了怎家__init__.py), 并在其中建立lazy_tags.py:

from django import template

from settings import TRANSLATION_FIELDS

register = template.Library()

class LocalizedContent(template.Node):

def __init__(self, model, language_code):

self.model = model

self.lang = language_code

def render(self, context):

model = template.resolve_variable(self.model, context)

lang = template.resolve_variable(self.lang, context)

for f in TRANSLATION_FIELDS:

try:

setattr(model, f, getattr(model, '%s_%s' % (f, lang)))

except AttributeError:

pass

return ''

@register.tag(name='get_localized_content')

def get_localized_content(parser, token):

bits = list(token.split_contents())

if len(bits) != 3:

raise template.TemplateSyntaxError("'get_localized_content' tag takes exactly 2 arguments")

return LocalizedContent(model=bits[1], language_code=bits[2])

为了在template中使用自定义的tag, 我们首先载入:

{% load lazy_tags %}

然后使用自定义tag, 传入object和语言代码, 取的翻译. 比如西班牙语:

{% get_localized_content object 'es' %}

此时, 如果没有语言代码传入, 那么无法使用obj.description调用某一个语言field. 所以我们配合django.core.context_processors.request, context processor一起使用:

TEMPLATE_CONTEXT_PROCESSORS = (

...

'django.core.context_processors.request',

)

我们就能在template中这样使用:

{% get_localized_content object request.LANGUAGE_CODE %}

如何实现Django动态修改model字段定义属性

Django可以获取一个model里字段定义的属性:

User._meta.get_field_by_name('username')

返回的是tuple,所以没法修改

数据库中有一数据表table_a,且该表没有主键也无唯一键,有一列row1数据都是不同的(没有唯一键),对应的django中的model为:

class TableA(models.Model):

row1 = models.CharField(primary_key=True, max_length=36)

row2 = models.CharField(max_length=36)

row3 = models.CharField(max_length=36)

class Meta:

db_table = u'table_a'

django中对应的model设置row1为主键,一切正常

如果row1有重复数据,model在过滤的时候去重,使用model一切正常

objs = TableA.objects.filter(Q('取出row1中的重复项'))

如果要操作那些重复项(只有row1中的数据是重复的),但这些重复项中row2和row3的数据都是不同的

如果能动态设置model字段属性就都解决了

当然直接用sql也可以

Django 给 css 图片加 url

!DOCTYPE html

html lang="en"

head

meta charset="UTF-8"

title景安/title

/head

body

a href="ssl.zzidc.com"img src="images/a.jpg"/a

/body

/html

在a标签里面嵌套一个img标签即可给图片添加链接

怎么调用django自定义标签

Django的表单验证框架可以从数据模型自动生成HTML表单,还可在与数据存储区交互的同时无缝处理通过表单输入的信息。要在Google App Engine上使用Django Forms,参考这篇文章在使用过程中会遇到一个问题,比如你在定义一个数据模型Book

django(python)的模型字段类的实例化问题,新手请教。

这些东西,都有办法。我都用过。不过,最近不用了。我只能给你一个指引。

在django提供的管理类里admin有所有这些用法。你可以找到它的源代码,自己读一下。

DataField的确需要一个这样的对象来给它才可以向数据库写。

ForiegnKey也的确需要一个已建立好的class。 比如ForiegnKey(anotherModel), anotherModel一定是一个已定义好的class

另外在djangoproject的官网中有丰富的帮助。大部分答案都可以搜索到。

结语:以上就是首席CTO笔记为大家介绍的关于django怎么给图片定义类的全部内容了,希望对大家有所帮助,如果你还想了解更多这方面的信息,记得收藏关注本站。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:/Python/15749.html