1.python manage.py makemigrations 无效/无法检测出model的变化

在修改了models.py之后,我们想要更新数据库的表,使用了python manage.py makemigrations 命令之后,显示出"No changes detected",我们因此无法migrate这个数据库。

解决办法:

在makemigrations 后面增加APP的名字

比如说:

python manage.py makemigrations coder_market

这时就能检测出哪些表有变化了


2.无法使数据库在admin后台可视化

网上的方法大多是修改admin.py来修改,但是我使用这样的办法无效。发现将register的代码放到models.py时可以使用

from __future__ import unicode_literals
from django.contrib.auth.models import User
from django.db import models
from django.contrib import admin
'''
class user_login(models.Model):
username = models.CharField(max_length=30)
password = models.CharField(max_length=30)
identity = models.CharField(max_length=15)
''' '''
class identity(models.Model):
username = models.ForeignKey(User)
iden = models.CharField(max_length=10)
''' class publisher(models.Model):
username = models.CharField(max_length=30)
order_project = models.IntegerField()
presonal_information = models.CharField(max_length=100)
accept_information = models.TextField() class receiver(models.Model):
username = models.CharField(max_length=30)
get_project = models.IntegerField()
presonal_information = models.CharField(max_length=100)
tag = models.CharField(max_length=50)
accept_information = models.TextField() class manager(models.Model):
username = models.CharField(max_length=30)
manage_project = models.IntegerField()
presonal_information = models.CharField(max_length=100)
tag = models.CharField(max_length=50)
accept_information = models.TextField() class project(models.Model):
number = models.IntegerField()
project_publisher = models.CharField(max_length=30)
project_content = models.TextField()
project_receiver = models.CharField(max_length=30)
project_manager = models.CharField(max_length=30)
tag = models.CharField(max_length=50) class UserProfile(models.Model):
#user = models.ForeignKey(User, unique=True, verbose_name='profile')
user = models.OneToOneField(User, unique=True)
identity = models.CharField(max_length=15) admin.site.register(publisher)
admin.site.register(receiver)
admin.site.register(project)
admin.site.register(UserProfile)

3.django无法使用login

遇到了一个登录失败的问题。

一个初始版本的login如下:

def login(request):
if request.method == "POST":
print request.POST['login_username'],request.POST['login_password']
user = django.contrib.auth.authenticate(username=request.POST['login_username'],
password=request.POST['login_password'])
if user is not None:
django.contrib.auth.login(request, user)
return HttpResponseRedirect('/hello')
else:
return HttpResponse('fail to login')
return render(request, 'login.html', {})

我发现在判断user是不是存在的时候就一直判断不存在,反复检查登录的代码,虽然初级,但是应该是正确的。最后发现问题存在于注册

注册时,我们的代码如下

def register(request):
if request.method == 'POST':
reg = User()
reg.username = request.POST['register_username']
reg.password = request.POST['register_password'] #问题出在这一行
reg.save()
pro = UserProfile(user_id=reg.id)
pro.identity = request.POST['register_identity']
pro.save()
return HttpResponse("run!")
return render(request, 'register.html', {})

事实上问题出在密码的设置上,我们应该使用django内置的set_password方法,即可解决问题。

reg.set_password(request.POST['register_username'])

4.在django的admin后台看到的各个表的值都是乱码

出现问题的原因是在model.py内的类没有加__unicode__()方法,导致admin不知道拿哪一个字段来显示。改进的方法类似下面的代码

from __future__ import unicode_literals

from django.contrib import admin
from django.contrib.auth.models import User
from django.db import models # Create your models here. class publisher(models.Model):
username = models.CharField(max_length=30)
order_project = models.IntegerField()
presonal_information = models.CharField(max_length=100)
accept_information = models.TextField() #下面这个方法加上
def __unicode__(self):
return self.username

5.无法提交HTML表单

解决方法:在HTML表单内加上{% csrf_token %}

<form method="post">{% csrf_token %}
<table>
后面省略

6.(1054, "Unknown column 'coder_market_project.status' in 'field list'")

问题可能是对数据库做了修改之后只进行了python manage.py makemigrations

没有做python manage.py migrate

我想问题可能是在django 的数据库抽象层做了改动之后,但是连接的数据库并没有改变表或者是字段,在增删改查的时候django在对应的数据库里找不到相应的数据


7.django数据库查询时不确定是否存在

可以用类似下面的方法。核心是DoesNotExist异常

try:
p = User.objects.get(username='haha')
except User.DoesNotExist:
return HttpResponseRedirect('/hello')

记录软件工程课程项目开发时遇到的各种小问题(django)的更多相关文章

  1. Android 项目优化(六):项目开发时优化技巧总结

    在之前我们讲了很多能够优化 Android 开发项目质量的方案,这些方案更多的是从一些比较专精的方向切入的,阐述的是一些比较重要且独立的优化方案. 本文我们将总结一下在日常开发过程中我们能够使用的一些 ...

  2. 使用Eclipse进行Javaweb项目开发时,如何设置外置浏览器Chrome

    使用Eclipse开发Javaweb项目时,在Eclipse中显示页面不是很好,那么如何让它自动打开外置浏览器呢?操作如下

  3. vue项目开发时怎么解决跨域

    vue项目中,前端与后台进行数据请求或者提交的时候,如果后台没有设置跨域,前端本地调试代码的时候就会报“No 'Access-Control-Allow-Origin' header is prese ...

  4. 【问题记录】web项目访问时出现404

    请一定检查一下项目的Context root是否是你访问时使用的. Context root设置为/时,可以直接用ip+端口访问. Context root设置为项目名的,访问时请带上项目名. 设置方 ...

  5. iOS开发--Swift 最近项目开发中遇到的一些小问题与解决方法

    1, Swift 修改导航栏颜色 self.navigationController?.navigationBar.barTintColor 2, Swift button 属性设置时直接进行初始化 ...

  6. 最近在用mvc3开发时遇到的一些小问题与解决方法....

    问题一:控制器中的字符串如何显示在view的javascript中?例如ViewBag.str="1,2,3,4,5"; 解决办法:例如:<script type=" ...

  7. TMS320F28335项目开发记录1_CCS的使用介绍

    CCS使用介绍 一.前言 本系列文章记录本人实际项目开发时对ti的DSP28335,以及CCS开发环境等的学习与记录,相对于2812来说,28335的资料还是比較少的,只是原理是相通的,28335说白 ...

  8. react项目开发中遇到的问题

    前言 作为一个前端爱好者来说,都想在react上一试生手,那么在搭建react项目开发时,肯定会有这样或者那样的问题,尤其是对初学者来说,下面就个人在开发过程中遇到的问题总结一下,好在有google帮 ...

  9. 如何实现从Java入门到服务端项目开发的进阶?

    对于打算入门或者刚刚入门学习Java的人来说,刚开始接触这门学科,往往会觉得不知所措,也会觉得很迷茫.结合前人经验,就从入门到进阶对于Java的学习而言,应该对于学习时间.目标和内容规划有一个清晰的定 ...

随机推荐

  1. 利用XAG在RAC环境下实现GoldenGate自动Failover

    概述 在RAC环境下配置OGG,要想实现RAC节点故障时,OGG能自动的failover到正常节点,要保证两点: 1. OGG的checkpoint,trail,BR文件放置在共享的集群文件系统上,R ...

  2. C++中的引用

    一,C++中引用的基础知识 1.引用的基本概念 1.所谓的引用其实就是对变量起“别名”.引用和变量对应得是相同的内存,修改引用的值,变量的值也会改变,和指针类似. 2.引用在定义的时候必须要初始化,初 ...

  3. Node.js:path、url、querystring模块

    Path模块 该模块提供了对文件或目录路径处理的方法,使用require('path')引用. 1.获取文件路径最后部分basename 使用basename(path[,ext])方法来获取路径的最 ...

  4. UE4新手引导之下载和安装虚幻4游戏引擎

    1) 进入虚幻4的官方主页(https://www.unrealengine.com/) 这里你可以获得关于虚幻4的最新资讯,包括版本更新.博客更新.新闻和商城等.自2015年起,该引擎已经提供免费下 ...

  5. JQuery 复制粘贴上传图片插件(textarea 和 tinyMCE)

    开源地址:https://github.com/yuezhongxin/paste-upload-image.js 支持 Ctrl+C/Ctrl+V 上传,支持拖拽上传,也支持 QQ/微信截图上传. ...

  6. Openfiler配置RAC共享存储

    将 Openfiler 用作 iSCSI 存储服务器,主要操作步骤如下: 1.设置 iSCSI 服务 2.配置网络访问 3.指定物理存储器并对其分区 4.创建新的卷组 5.创建所有逻辑卷 6.为每个逻 ...

  7. [转]Patch文件结构详解

    N久不来 于是不知道扔在哪儿于是放这里先 如果你觉得碍事的话 帮我扔到合适的版块去.. 导读这是一篇说明文 它介绍了标准冒险岛更新文件(*.patch;*.exe)的格式文章的最后附了一段C#的参考代 ...

  8. 从Vue.js窥探前端行业

    近年来前端开发趋势 1.旧浏览器逐渐淘汰,移动端需求增加: 旧浏览器主要指的是IE6-IE8,它是不支持ES5特性的:IE9+.chrome.sarafi.firefox对ES5是完全支持的,移动端大 ...

  9. SAP自定义权限对象

    SAP系统自带了很多的权限对象,每一个运行画面都有非常多的权限用到.不过标准的权限对象并不一定适合于用在客户自己开发的程序里面,所以每个ABAPer都应该会自己开发一套权限对象,并引用在程序代码里面. ...

  10. 【教程】SQLite数据库修复

    SQLite 大家都知道,就不多说了. 有时候数据量大了,或者存储过程中出现异常,数据库就可能会出问题. 这是以前公司产品出现过的问题,导致软件都打不开了,我花了不少时间才解决的,趁现在有空贡献出来. ...