DjangoORM属性操作和models创建类语法

Models语法:

class  Publis(models.Model):
    # 设置主键
    id=models.AutoField(primary_key=True,auto_created=True)
    # 设置name字段,类型CharField 长度 max_length  唯一 unique
    name=models.CharField(max_length=32,unique=True)

    def __str__(self):
        return  self.name

  一对多:

# 书籍
class Book(models.Model):
    id=models.AutoField(primary_key=True)
    title=models.CharField(max_length=32,unique=True)
    pub=models.ForeignKey(to=Publis,on_delete=models.CASCADE)

    def __repr__(self):
        return self.title

  多对多

#作者
class Author(models.Model):
    name=models.CharField(max_length=22,unique=True)
    books=models.ManyToManyField('Book')

    def __repr__(self):
        return  self.name

  ORM属性操作

  获取页面输入的内容:

  

request.POST.get('id')
request.GET.get('id')
request.POST.getlist(列表)
models.Publis.objects.filter()
models.Publis.objects.all()
//添加内容create
models.Publis.objects.create
//排序
order_by
//页面跳转
return  render(request,'页面',{'msg':msg})
 return render(request,'addpub.html',{'err_msg':err_msg})

 return redirect('/pub/')
//显示报错信息
 return Httpresponse

//删除
delete
 del_id=request.GET.get('id')
 models.Book.objects.get(id=del_id).delete()

//修改
ef upd_auto(request):
    auto_id=request.GET.get('id')
    auto_list=models.Author.objects.get(id=auto_id)
    if request.method=='POST':
        new_name=request.POST.get('new_name')
        # 选择多个数据,所有用getlist获取
        book_id=request.POST.getlist('book_id')
        auto_list.name=new_name
        # 用set保存到数据库,
        auto_list.books.set(book_id)
        auto_list.save()
        return  redirect('/auto/')
    book_all=models.Book.objects.all()
    return render(request,'updauto.html',{'auto_list':auto_list,'book_all':book_all})

  html属性方法操作

  

//循环用法 for
<select name="book_ids" id="" multiple>
            {% for book in book_all %}
                     <option value="{{ book.id }}">{{ book.title }}</option>
             {% endfor %}
</select>

//forloop.counter
  <td>{{ forloop.counter }}</td>

//for if  
 {% for book in book_all %}
        {% if book in auto_list.books.all %}
               <option value="{{ book.id }}" selected>{{ book.title }}</option>
         {% else %}
               <option value="{{ book.id }}">{{ book.title }}</option>
        {% endif %}
{% endfor %}

//删除修改通过id

    <a href="/delauto/?id={{ auto.id }}">
    <button>删除</button>
    </a>
     <a href="/updauto/?id={{ auto.id }}">
      <button>修改</button>
     </a>

  

  

原文地址:https://www.cnblogs.com/duanhaoxin/p/9622389.html