小编Fli*_*rPA的帖子

插入后在实体框架中获取记录ID

我正在使用Entity Framework开发ASP.net应用程序.我正在使用DetailsView将数据插入数据库.有一个表Client,其主键是client_id.client_id是由数据库自动生成的.我需要client_id在将记录插入Client表格后将其自动生成并将其分配给隐藏字段以供将来使用.

我搜索了这个,我找到了很多解决方案.但我不知道如何使用它们,因为我是asp.net的新手.我发现Entity Framework在调用后自动使用db生成的值填充业务对象SaveChanges().我的问题是我应该在我的部分课程中将其称为何处?活动是什么?

我正在使用DetailsView和EntityDataSource并将EntityDataSource直接与实体模型绑定,所以我不是要创建插入数据的对象.

asp.net detailsview entity-framework-4.1

21
推荐指数
3
解决办法
6万
查看次数

Django ORM:相当于 SQL`NOT IN`?`exclude` 和 `Q` 对象不起作用

问题

我正在尝试使用 Django ORM 来执行 SQLNOT IN子句的等效操作,在子选择中提供 ID 列表以从日志记录表中带回一组记录。我不知道这是否可能。

该模型

class JobLog(models.Model):
    job_number = models.BigIntegerField(blank=True, null=True)
    name = models.TextField(blank=True, null=True)
    username = models.TextField(blank=True, null=True)
    event = models.TextField(blank=True, null=True)
    time = models.DateTimeField(blank=True, null=True)
Run Code Online (Sandbox Code Playgroud)

我试过的

我的第一次尝试是使用exclude,但这确实NOT否定了整个Subquery,而不是所需的NOT IN

query = (
    JobLog.objects.values(
        "username", "job_number", "name", "time",
    )
    .filter(time__gte=start, time__lte=end, event="delivered")
    .exclude(
        job_number__in=models.Subquery(
            JobLog.objects.values_list("job_number", flat=True).filter(
                time__gte=start, time__lte=end, event="finished",
            )
        )
    )
)
Run Code Online (Sandbox Code Playgroud)

不幸的是,这产生了这个 SQL:

SELECT "view_job_log"."username", "view_job_log"."group", "view_job_log"."job_number", "view_job_log"."name", "view_job_log"."time"
FROM "view_job_log"
WHERE ( …
Run Code Online (Sandbox Code Playgroud)

python django postgresql django-models django-orm

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

在django中使用元类

有人可以解释为什么在以下示例中使用元类.

例如:

Class Employee (models.Model):
    name = models.ForeignKey(name)
    Gender = models.IntegerField()


    class Meta:
        ordering = ["Gender"]
Run Code Online (Sandbox Code Playgroud)

谢谢.

python django django-models

8
推荐指数
2
解决办法
8602
查看次数

使用先前工作配置的django-pyodbc-azure回滚错误 - 第389行

我一直在Linux上使用django-pyodbc-azure一段时间,还有pydobc,FreeTDS和unixODBC将Django连接到SQL Server 2014.我遇到了这个问题,我的应用程序工作正常,调试有问题它.为了重现这个问题,我开始使用全新的Django应用程序来保持简单.这是我的virtualenv:

(azuretest)[vagrant@vagrant azuretest]$ pip freeze
Django==1.8.6
django-pyodbc-azure==1.8.3.0
pyodbc==3.0.10
Run Code Online (Sandbox Code Playgroud)

这是我连接到SQL Server的数据库配置:

DATABASES = {
    'default': {
        'ENGINE': 'sql_server.pyodbc',
        'HOST': 'myserver.com',
        'PORT': '1433',
        'NAME': 'my_db',
        'USER': 'my_db_user',
        'PASSWORD': 'mypw',
        'AUTOCOMMIT': True,
        'OPTIONS': {
            'driver': 'FreeTDS',
            'autocommit': True,
            'unicode_results': True,
            'host_is_server': True,
            'extra_params': 'tds_version=7.2',
        },
    },
}
Run Code Online (Sandbox Code Playgroud)

我创建了一个简单的models.py:

class TestTemp(models.Model):
    tempdate = models.DateField()
Run Code Online (Sandbox Code Playgroud)

这个设置在一个相当复杂的Django项目中运行良好,该项目仍可以SELECT到同一个数据库.但是,每当我尝试进行UPDATE或迁移时,我都会收到此错误:

(azuretest)[vagrant@vagrant azuretest]$ ./manage.py migrate home
Operations to perform:
  Apply all migrations: home
Running migrations:
  Rendering model states... DONE
  Applying home.0001_initial...Traceback (most recent call last):
  File "/home/vagrant/.virtualenvs/azuretest/lib/python3.4/site-packages/sql_server/pyodbc/base.py", line …
Run Code Online (Sandbox Code Playgroud)

python sql-server django pyodbc django-pyodbc-azure

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

Python pandas:通过代理键将 JSON 扁平化为行的快速方法

我对诸如此类的包的了解pandas相当浅,我一直在寻找将数据展平为行的解决方案。有了dict这样的,有一个代理键名为entry_id

data = [
    {
        "id": 1,
        "entry_id": 123,
        "type": "ticker",
        "value": "IBM"
    },
    {
        "id": 2,
        "entry_id": 123,
        "type": "company_name",
        "value": "International Business Machines"
    },
    {
        "id": 3,
        "entry_id": 123,
        "type": "cusip",
        "value": "01234567"
    },
    {
        "id": 4,
        "entry_id": 321,
        "type": "ticker",
        "value": "AAPL"
    },
    {
        "id": 5,
        "entry_id": 321,
        "type": "permno",
        "value": "123456"
    },
    {
        "id": 6,
        "entry_id": 321,
        "type": "company_name",
        "value": "Apple, Inc."
    },
    {
        "id": 7,
        "entry_id": 321,
        "type": "formation_date", …
Run Code Online (Sandbox Code Playgroud)

python flatten dataframe pandas

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

pyodbc sql包含0个参数标记,但提供了1个参数''hy000'

我使用的是Python 3.6,pyodbc,并连接到SQL Server.

我正在尝试连接到数据库,然后创建带参数的查询.

这是代码:

import sys
import pyodbc

# connection parameters
nHost = 'host'
nBase = 'base'
nUser = 'user'
nPasw = 'pass'

# make connection start
def sqlconnect(nHost,nBase,nUser,nPasw):
    try:
        return pyodbc.connect('DRIVER={SQL Server};SERVER='+nHost+';DATABASE='+nBase+';UID='+nUser+';PWD='+nPasw)
        print("connection successfull")
    except:
        print ("connection failed check authorization parameters")  
con = sqlconnect(nHost,nBase,nUser,nPasw)
cursor = con.cursor()
# make connection stop

# if run WITHOUT parameters THEN everything is OK   
ask = input ('Go WITHOUT parameters y/n ?')
if ask == 'y':
    # SQL without parameters start
    res …
Run Code Online (Sandbox Code Playgroud)

python sql markers pyodbc

7
推荐指数
2
解决办法
2万
查看次数

Google 地图 API 错误:此 API 密钥无权使用此服务或 API。地点 API 错误:ApiTargetBlockedMapError

我开始从我使用的 CMS 内的 Google 地图小部件收到此错误:

This API key is not authorized to use this service or API. Places API error: ApiTargetBlockedMapError

该错误消息提供了指向此页面的有用链接,其中包括以下文本:

ApiTargetBlockedMapError 错误

Maps JavaScript API 尚未获得使用的 API 密钥的授权。请在 Google Cloud Platform Console 中检查您的 API 密钥的 API 限制设置。

请参阅 Google Cloud Platform Console 中的 API 密钥。有关更多信息,请参阅使用 API 密钥。

我知道 Google 过去已经调整过这个 API,所以我进入控制台并检查了为我正在使用的密钥提供的权限。它包括这四个权限,其中包括Maps JavaScript API权限:

  • 地理编码API
  • 地图嵌入 API
  • 地图 JavaScript API
  • 地图静态API

唯一不起作用的部分是地址自动完成。当我更改为Don't Restrict Key密钥适用于所有服务的模式时,它工作正常。知道我可能缺少哪个服务复选框吗?我想知道谷歌是否只是显示错误的错误。

有任何想法吗?

javascript django google-maps google-maps-api-3 wagtail

6
推荐指数
2
解决办法
3万
查看次数

Django 自定义身份验证后端似乎没有被调用?

我在 Python 3 上使用 Django 1.8.4,并尝试创建一个身份验证后端,该后端验证来自旧版 ColdFusion 网站的 cookie,并在检查数据库中的值后创建/登录 Django 用户。在设置中,我包括后端:

AUTHENTICATION_BACKENDS = (
    'site_classroom.cf_auth_backend.ColdFusionBackend',
)
Run Code Online (Sandbox Code Playgroud)

以及后端本身的代码;SiteCFUser 是一个针对 SQL Server 数据库用户模型的模型,其中包含活动 cookie 令牌值:

from django.contrib.auth.backends import ModelBackend
from django.contrib.auth import get_user_model
from users.models import SiteCFUser


class ColdFusionBackend(ModelBackend):
    """
    Authenticates and logs in a Django user if they have a valid ColdFusion created cookie.

    ColdFusion sets a cookie called "site_web_auth"
    Example cookie: authenticated@site+username+domain+8E375588B1AAA9A13BE03E401A02BC46
    We verify this cookie in the MS SQL database 'site', table site_users, column user_last_cookie_token
    """

    def authenticate(self, request): …
Run Code Online (Sandbox Code Playgroud)

python django django-models django-authentication django-class-based-views

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

django-cors-headers settings.py django应用程序无法运行,即使我已将所有要求都添加到settings.py

因此,我将django-cors-headers与带有Django 1.11.x的Rest Framework一起使用,并且我已经大致遵循了一般建议,但是,我仍然x has been blocked by CORS policy: No 'Access-Control-Allow-Origin'在请求的资源上使用header。”可以看到,我已经在INSTALLED_APPS和'corsheaders.middleware.CorsMiddleware'上添加了“ corsheaders” Middleware,并且我也将其设置CORS_ORIGIN_ALLOW_ALL为true和CORS_ALLOW_CREDENTIALStrue。甚至包括白名单选项,尽管据我了解,如果CORS_ORIGIN_ALLOW_ALL将其设置为true,白名单是不需要的,我也有pip3 install django-cors-headers什么关系???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????就必道之·,我已经阅读了django-cors-headers仓库中的自述文件,我想知道为什么它不起作用。

INSTALLED_APPS = [

    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'rest_framework',
    'corsheaders',
    'books.apps.BooksConfig',
]


MIDDLEWARE = [
    'corsheaders.middleware.CorsMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]


CORS_ORIGIN_ALLOW_ALL = True
CORS_ALLOW_CREDENTIALS = True
CSRF_TRUSTED_ORIGINS = (
    'localhost:5555' 
)
Run Code Online (Sandbox Code Playgroud)

从本地主机:5555访问的我的js文件是:

var request = $.ajax({
    type: 'GET',
    url: url,
    dataType: 'json',
    xhrFields: {
        withCredentials: true
    }});
Run Code Online (Sandbox Code Playgroud)

python django rest cors django-cors-headers

5
推荐指数
0
解决办法
1314
查看次数

Python - 无法打开 lib 'libtdsodbc.so':找不到文件

非常感谢对此问题的任何帮助。

目标:使用 FreeTDS 将 Django 连接到 MSSQL 服务器。我正在使用 Debian x64 盒子。

问题:尝试建立连接时,我得到以下信息。

('01000', "[01000] [unixODBC][Driver Manager]Can't open lib 'libtdsodbc.so' : file not found (0) (SQLDriverConnect)")
Run Code Online (Sandbox Code Playgroud)

/etc/odbcinst.ini的配置如下

[FreeTDS]
Description = FreeTDS
driver = /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so
setup = /usr/lib/x86_64-linux-gnu/odbc/libtdsS.so
Run Code Online (Sandbox Code Playgroud)

这些文件确实存在并且有 777 次测试访问权限。

连接字符串就像

cnxn = pyodbc.connect(
        'DRIVER={FreeTDS};SERVER=' + server + ';PORT=1443;DATABASE=' + database + ';UID=' + username + ';PWD=' + password)
    cursor = cnxn.cursor()
Run Code Online (Sandbox Code Playgroud)

我的 odbcinst -j 读取(因为添加了符号链接)

unixODBC 2.3.1
DRIVERS............: /usr/local/etc/odbcinst.ini
SYSTEM DATA SOURCES: /usr/local/etc/odbc.ini
FILE DATA SOURCES..: …
Run Code Online (Sandbox Code Playgroud)

python sql linux pyodbc freetds

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