标签: models

按字母顺序对 Django models.py 进行排序:引用下面定义的模型

快速提问,

我试图清理我的 models.py,它有点乱;我认为按字母顺序排列它们会很聪明......

问题某些模型引用其他模型(通过外键),这些模型现在在文件中的下面定义。

我确信这很容易解决,我该怎么办?

from django.db import models


class Craft(models.Model):
    subdpt = models.ForeignKey(Subdepartment, on_delete=models.CASCADE)
    #### UNDEFINED NAME SUBDEPARTMENT ###

    title = models.CharField(max_length = 200)
    description = models.CharField(max_length = 200, blank = True)

    def __str__(self):
        return self.title

class Subdepartment(models.Model):
    subdpt_name = models.CharField(max_length=200)

    def __str__(self):
        return self.subdpt_name

    class Meta:
        permissions = (
            ("can_add", "Can add items in app"),
            ("can_edit", "Can edit items in app"),
        )
Run Code Online (Sandbox Code Playgroud)

python django models

2
推荐指数
1
解决办法
252
查看次数

具有ManyToMany字段的Diff django模型对象

我有一种情况,当DB中的某些内容发生变化时,我需要通知某些用户.我的想法是抓住pre_savepost_save发出信号并制作某种差异和邮件.一般来说它运作良好,但我不知道如何获得m2m字段的差异.

目前我有这样的事情:

def pre_save(sender, **kwargs):
    pk = kwargs['instance'].pk
    instance = copy.deepcopy(sender.objects.get(pk=pk))
    tracking[sender] = instance

def post_save(sender, **kwargs):
    instance = copy.deepcopy(kwargs['instance'])
    print diff(instance, (tracking[sender])) # TODO: don't print, save diff somewhere
Run Code Online (Sandbox Code Playgroud)

Diff函数应该适用于每个模型(在mommet我有四个模型类).使用深度复制,我可以保存旧模型,但我不知道如何保存m2m字段,因为它们在单独的表中(是的,我知道我可以获得这些数据,但在执行的时候我不知道哪些字段是m2m,我不想为每个型号创建不同的插槽).我想要的是通用解决方案,所以我可以稍后添加模型而不考虑通知部分.

我的计划是在调用插槽后调用get_data()clear_data()运行save(),以清理插槽生成的差异.

这是这样做的好方法吗?有没有更好的办法?是否有能为我做这项工作的django应用程序?

请原谅我的英语,这不是我的母语.

python django diff models

1
推荐指数
1
解决办法
1359
查看次数

ASP.NET MVC - 使用C#将引用不同程序集的模型从Controller传递到View

给定两个组件:

project.web
project.lib

project.web程序集引用了包含一些业务逻辑的project.lib.来自project.lib的一个简单类:

public class Person
{
    public string Name;
}
Run Code Online (Sandbox Code Playgroud)

在project.web.Controllers中:

Using project.lib.models;

public class PersonController : Controller
{
    Person person = new Person();

    public ActionResult Index()
    {
        return View(person);
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我有一些问题的部分.在很多示例项目中,我在View中看到了以下内容(在本例中为Index.aspx):

<% @Import Namespace="project.lib.models" %>
Run Code Online (Sandbox Code Playgroud)

允许您像这样使用Model对象:

<%= Model.Name %>
Run Code Online (Sandbox Code Playgroud)

我没有像工作那样工作,我必须这样做:

<%= (Model as Person).Name %>
Run Code Online (Sandbox Code Playgroud)

要么

<%
    var person = (Person)Model;
    Response.Write(person.Name);
%>
Run Code Online (Sandbox Code Playgroud)

这是为什么呢?这种情况的原因是什么?评论?建议?我的类定义如下所示:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace project.lib.models
{
    public class Person
    {
        public Int64 PersonID;
        public string DisplayName;
        public …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc views models

1
推荐指数
1
解决办法
3335
查看次数

在Rails中通过多对多连接自己的表

在我的数据库中,OptionSets与其他OptionSet相关联.如果我加入两个单独的表,我会创建一个简单的连接表.但是,Rails喜欢将其外键命名为<singular_table_name> _id,即optionset_id.但是,如果我自己加入表,我显然不能给这两个表赋予相同的名称.我该如何处理?

create_table :optionsets_optionsets do |t|
  t.column :optionset_id, :integer
  t.column :dependent_optionset_id, :integer # how do i deal with this?
end
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails models

1
推荐指数
1
解决办法
2472
查看次数

当View需要多个模型时,你如何优雅地编程ASP.NET MVC?

View接受一个Model.但我需要为两个模型绘制HTML输入控件.一个例子将说明:

我有一个屏幕,我添加员工.在添加了他们的名字,姓氏等之后,我需要用户选择员工所在的公司数量.

公司在一张桌子上.员工在另一个员工.链接表加入了它们.

所以我似乎需要将公司传递给View.我可以将多个模型传递给视图吗?或者我是否必须在View中进行丑陋的数据库查找才能找到公司,并在没有HTML帮助程序的情况下为复选框手动吐出HTML?

asp.net-mvc view models

1
推荐指数
1
解决办法
310
查看次数

Google App Engine无法创建表格(python)

我有这个模型

class SiteUser(db.Model):
    site_user = db.UserProperty()
    total_votes = db.IntegerProperty(default=1)
    liked_items = db.StringProperty()

class Item(db.Model):
    user_who_liked_this_item = db.UserProperty()
    title = db.StringProperty()
    url = db.StringProperty()
    date = db.DateTimeProperty(auto_now_add=True)   
    points = db.IntegerProperty(default=1) 
Run Code Online (Sandbox Code Playgroud)

Item表已创建但未创建SiteUser表.谁能帮助我理解我做错了什么?

谢谢?

python google-app-engine models

1
推荐指数
1
解决办法
354
查看次数

Django用户外键,save_model和save_formset

我有一些关于保存登录用户的事情,save_model()和save_formset()来自Django的modelAdmin,我想问一下.

考虑一下,我有一个模型,用于拍摄用户通过http POST上传的照片.

在models.py中:

class photo(models.Model):
    title = models.CharField(max_length=50)
    img = models.ImageField(upload_to='photocollection')
    uploader = models.ForeignKey(User)
    latitude =  models.FloatField(null=True, blank=True)
    longitude = models.FloatField(null=True, blank=True)

    def save(self):
        #Retain the model instance to do some processing before saving:
        self.latitude = exif.getGPSLatitude(self.img)
        self.longitude = exif.GPSLongitude(self.img)
        return super(photoCollection, self).save()

class photoForm(ModelForm):
    class Meta:
        model = photo
Run Code Online (Sandbox Code Playgroud)

然后在我的views.py中:

def upload(request):
    form = photoForm(request.POST, request.FILES)

    if form_is_valid():
       #do something useful
       form.save()
Run Code Online (Sandbox Code Playgroud)

在这里,我有一个有趣的场景.我的views.py中的表单无效,因为模型中的['uploader']字段永远不会更新,并且它是必填字段,因此不会保存.

1)如何获得表格验证?

另外,在保存表单时,我在这里看到了一篇文章,讲述了如何使用modelAdmin中的save_model()来保存ForeignKey(用户).通过在admin.py中创建一个photoAdmin类,我已尝试覆盖链接中显示的内容:

class photoAdmin(admin.ModelAdmin):
   def save_model(self, request, obj, form, change):
       if not change: …
Run Code Online (Sandbox Code Playgroud)

forms django models

1
推荐指数
1
解决办法
2462
查看次数

在Django python中导入模型

如何在INSTALLED_APPS中的settings.py中导入所有模型?当我试图插入一些模型时,发生了一个错误:"没有名为app1_model的模型"

-ProjectName
--ProjectName
---models
----__init__.py
----admin.py
----app_1_model
----....
----app_n_model
---templates
---__init__.py
---settings.py
---urls.py
---wsgi.py
--manage.py
Run Code Online (Sandbox Code Playgroud)

^项目的结构^

python django models

1
推荐指数
1
解决办法
7545
查看次数

从Laravel 5.2中的控制器调用模型函数

我有一个模型配置,顶部有以下内容:

<?php

namespace App;

use DB;
use Illuminate\Database\Eloquent\Model;

class Config extends Model
{
    protected $table = 'config';

    public function getConfigVariables()
    {
        $config = DB::table('config')->where('is', '1')->first();
        session()->put('name',$config['name']);
        session()->put('infoemail',$config['infoemail']);
        session()->put('copyrightowner',$config['copyrightowner']);
Run Code Online (Sandbox Code Playgroud)

我希望在控制器中调用它来设置会话,以便在我设置的顶级路由中设置

Route::get('/',
[
    'uses' => 'ConfigController@ConfigVariables',
    'as' => 'home'
]);
Run Code Online (Sandbox Code Playgroud)

不起作用的配置控制器方法是:

 public function ConfigVariables()
    {

            Config::getConfigVariables();
            session()->put('thisyear',ReturnCurrentYear());
            $footer = "&copy ".session()->get('thisyear').", ".session()->get('name');
            session()->put('footer',$footer);

        return view('welcome');
    }
Run Code Online (Sandbox Code Playgroud)

但这不起作用,我被困住了!

controllers models laravel-5

1
推荐指数
1
解决办法
4878
查看次数

无法在rails控制台中创建对象 - 模型关联

我是RoR的新手,我正在练习模特和协会.

我用belongs_to关联创建了两个模型.当我尝试通过Rails控制台创建其中一个模型的对象时,我得到一个回滚事务,我不知道为什么.所有帮助将不胜感激!

我已成功创建用户:

=> #<User id: 1, name: "Jen", created_at: "2016-12-04 17:48:33", updated_at: "2016-12-04 17:48:33"> 
Run Code Online (Sandbox Code Playgroud)

当我尝试创建一个Post对象时,我得到了这个:

2.3.0 :012 > post = Post.create(body: "hola soy un post nuevo")
   (0.2ms)  begin transaction
   (0.1ms)  rollback transaction
 => #<Post id: nil, user_id: nil, body: "hola soy un post nuevo", created_at: nil, updated_at: nil> 
Run Code Online (Sandbox Code Playgroud)

models/user.rb>

class User < ApplicationRecord
  has_many :posts
end
Run Code Online (Sandbox Code Playgroud)

models/post.rb>

class Post < ApplicationRecord
  belongs_to :user
end
Run Code Online (Sandbox Code Playgroud)

db/schema.rb>

ActiveRecord::Schema.define(version: 20161204174201) do

  create_table "posts", force: :cascade do |t|
    t.integer  "user_id"
    t.text     "body"
    t.datetime …
Run Code Online (Sandbox Code Playgroud)

model-view-controller activerecord ruby-on-rails associations models

1
推荐指数
1
解决办法
1715
查看次数