django如何添加m2m(django使用教程)

导读:本篇文章首席CTO笔记来给大家介绍有关django如何添加m2m的相关内容,希望对大家有所帮助,一起来看看吧。

如何添加Django的Mime类型

创建项目

运行下面命令就可以创建一个 django 项目,项目名称叫 mysite :

$ django-admin.py startproject mysite

创建后的项目目录如下:

mysite

├── manage.py

└── mysite

├── __init__.py

├── settings.py

├── urls.py

└── wsgi.py

1 directory, 5 files

说明:

__init__.py :让 Python 把该目录当成一个开发包 (即一组模块)所需的文件。 这是一个空文件,一般你不需要修改它。

manage.py :一种命令行工具,允许你以多种方式与该 Django 项目进行交互。 键入python manage.py help,看一下它能做什么。 你应当不需要编辑这个文件;在这个目录下生成它纯是为了方便。

settings.py :该 Django 项目的设置或配置。

urls.py:Django项目的URL路由设置。目前,它是空的。

wsgi.py:WSGI web 应用服务器的配置文件。更多细节,查看 How to deploy with WSGI

接下来,你可以修改 settings.py 文件,例如:修改 LANGUAGE_CODE、设置时区 TIME_ZONE

SITE_ID = 1

LANGUAGE_CODE = 'zh_CN'

TIME_ZONE = 'Asia/Shanghai'

USE_TZ = True

上面开启了 [Time zone]() 特性,需要安装 pytz:

$ sudo pip install pytz

2. 运行项目

在运行项目之前,我们需要创建数据库和表结构,这里我使用的默认数据库:

$ python manage.py migrate

Operations to perform:

Apply all migrations: admin, contenttypes, auth, sessions

Running migrations:

Applying contenttypes.0001_initial... OK

Applying auth.0001_initial... OK

Applying admin.0001_initial... OK

Applying sessions.0001_initial... OK

然后启动服务:

$ python manage.py runserver

你会看到下面的输出:

Performing system checks...

System check identified no issues (0 silenced).

January 28, 2015 - 02:08:33

Django version 1.7.1, using settings 'm

django 插入外键值思路

1.先确定需要添加添加的带有外键的数据格式,涉及几个表

2.前端组装好这个数据格式传回后端

3.后端验证数据,从请求中分离出外键的值,进行获取对象

4.使用add进行添加外键的值

r1=Role.objects.get(role_name=role) # r1表示UserInfo的多对多数据

u1=UserInfo(user_name=name,user_pwd=password,sex=sex,mobileno=mobile,email=email)

u1.save()

u1.role.add(r1)

u1.save()

django 插入多对多数据

django如何添加m2m(django使用教程)  第1张

Django媒体文件URL的配置

在Django中经常需要配置图片、视频等表态文件,在配置时较为复杂,这里纪录一下:

在文件尾部加入以下目录,用于存放上传的文件

在models中写上image字段其中 %Y 代表年, %m 代表月, blank=True 代表可以为空。当上传文件时,代表上传到image目录下,以当前年月子目录的文件夹中。

image = models.ImageField(upload_to="image/%Y/%m", blank=True)

其中src中的{{ MEDIA_URL }}会在模板中渲染为第一步中的 /media/

如果您想在模板中使用{{MEDIA_URL}},请在“模板”的“context_processors”选项中添加 django.template.context_processors.media 。

通过以上步骤,基本上可以在前端正常渲染出结果了,但还需要给图片添加一个URL以正常显示。

第一行为引入静态文件的serve,第二行为导入工程配置文件中的 MEDIA_ROOT

在url中加入:

python——Django项目开发:配置项目/static/路径,调用css、img、js等静态文件

在Django项目开发中,不能像正常web开发一样通过 'imgs/bg.jpg' 访问本地静态文件,需要做一些配置,才能实现静态文件的访问。

一、首先在项目根路径下新建一个static文件夹,然后在static文件夹下可以新建相应的css、imgs、js等文件夹,用于存放css、img、js等静态文件。

二、项目配置

1、打开settings.py,在底部添加:

2、打开urls.py,在 urlpatterns 中添加:(注意,如果你在blog目录下也建立了urls.py,那么就得在blog/urls.py中做修改。别忘了import settings):

(不过我经过实测,不加这一个,也可以完成静态文件的访问)

3、在html模板最上面添加:

然后在需要的地方按照这个格式进行调用,如:

最后重新运行项目,img等本地静态文件就可以被django找到了,这时模板对应的页面就可以显示使用img等文件了。

Django admin 中group的视图怎么添加选择user

在你的admin.py中加入

from django import forms

from django.contrib import admin

from django.utils.translation import ugettext_lazy as _

from django.contrib.admin.widgets import FilteredSelectMultiple

from django.contrib.auth.models import User, Group

class GroupAdminForm(forms.ModelForm):

users = forms.ModelMultipleChoiceField(

queryset=User.objects.all(),

required=False,

widget=FilteredSelectMultiple(

verbose_name=_('Users'),

is_stacked=False

)

)

class Meta:

model = Group

def __init__(self, *args, **kwargs):

super(GroupAdminForm, self).__init__(*args, **kwargs)

if self.instance and self.instance.pk:

self.fields['users'].initial = self.instance.users.all()

def save(self, commit=True):

group = super(GroupAdminForm, self).save(commit=False)

if commit:

group.save()

if group.pk:

group.users = self.cleaned_data['users']

self.save_m2m()

return group

class GroupAdmin(admin.ModelAdmin):

form = GroupAdminForm

admin.site.unregister(Group)

admin.site.register(Group, GroupAdmin)

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

以上内容为新媒号(sinv.com.cn)为大家提供!新媒号,坚持更新大家所需的互联网后端知识。希望您喜欢!

版权申明:新媒号所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流,不声明或保证其内容的正确性,如发现本站有涉嫌抄袭侵权/违法违规的内容。请发送邮件至 k2#88.com(替换@) 举报,一经查实,本站将立刻删除。

(0)
上一篇 2023-09-23 13:04
下一篇 2023-09-23 13:04

相关推荐

发表回复

登录后才能评论