我试图在DRF Serializer中更改模型字段名称,如SQL中的别名.我尝试过不同的方法,但不能成功.
models.py
class Park(models.Model):
name = models.CharField(max_length=256)
alternate_name = models.CharField(max_length=256, blank=True)
objects = models.GeoManager()
class Meta:
db_table = u'p_park'
def __unicode__(self):
return '%s' % self.name
def alias_alternate_name(self):
return self.alternate_name
Run Code Online (Sandbox Code Playgroud)
serializers.py
class ParkSerializer(serializers.ModelSerializer):
location = serializers.Field(source='alias_alternate_name')
#location = serializers.SerializerMethodField(source='alias_alternate_name')
#alternate_name as location
class Meta:
model = Park
fields = ('id', 'name', 'location')
Run Code Online (Sandbox Code Playgroud)
我也尝试在Django Queryset中添加别名但无法更改.
更新
这是我面临的例外
/ ViewName /'module'对象的AttributeError没有属性'Field'
我怎样才能做到这一点?
谢谢
我想从Viewset向DRF Serializer类传递一些参数,所以我试过这个:
class OneZeroSerializer(rest_serializer.ModelSerializer):
def __init__(self, *args, **kwargs):
print args # show values that passed
location = rest_serializer.SerializerMethodField('get_alternate_name')
def get_alternate_name(self, obj):
return ''
class Meta:
model = OneZero
fields = ('id', 'location')
Run Code Online (Sandbox Code Playgroud)
查看
class OneZeroViewSet(viewsets.ModelViewSet):
serializer_class = OneZeroSerializer(realpart=1)
#serializer_class = OneZeroSerializer
queryset = OneZero.objects.all()
Run Code Online (Sandbox Code Playgroud)
基本上我想基于querystring从视图传递一些值到Serializer类,然后将这些值分配给字段.
这些字段不包含在Model中,实际上是动态创建的字段.
在这个问题stackoverflow中的情况相同,但我无法理解答案.
任何人都可以在这种情况下帮助我或建议我更好的选择.
我试图访问序列化程序类中的查询字符串值.
class OneZeroSerializer(rest_serializer.ModelSerializer):
location = rest_serializer.SerializerMethodField('get_alternate_name')
def get_alternate_name(self, obj):
view = self.context['view']
print view.kwargs['q'] #output is {}
return 'foo'
class Meta:
model = OneZero
fields = ('id', 'location')
Run Code Online (Sandbox Code Playgroud)
查看
class OneZeroViewSet(viewsets.ModelViewSet):
serializer_class = OneZeroSerializer
queryset = OneZero.objects.all()
Run Code Online (Sandbox Code Playgroud)
这是访问查询字符串的正确方法吗?
我已经开始使用visual studio 2012开发Asp.net Mvc-5应用程序了.所以我从nuget下载了Entity Framework-6和MySQL 6.8.3.0.当我尝试使用db Context命令创建数据库时
dbContext.Database.CreateIfNotExists();
Run Code Online (Sandbox Code Playgroud)
抛出此异常.
指定密钥太长; 最大密钥长度为767字节
我已经对它进行了搜索,但找不到任何解决方案.我在搜索过程中得到的一件事就是Unicode字符问题.我不知道如何处理这个问题.
更新
我正在使用以下配置
<configuration>
<configSections>
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</configSections>
<entityFramework>
<providers>
<provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6" />
</providers>
</entityFramework>
<system.data>
<DbProviderFactories>
<remove invariant="MySql.Data.MySqlClient" />
<add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.8.3.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
</DbProviderFactories>
</system.data>
</configuration>
Run Code Online (Sandbox Code Playgroud)
我的数据库上下文类.我已经删除了所有模型,只留下一个模型
public class MyContext : DbContext
{
public MyContext()
: base("myconn")
{
this.Configuration.ValidateOnSaveEnabled = false;
}
protected override void OnModelCreating(DbModelBuilder …
Run Code Online (Sandbox Code Playgroud) 我在ASP.NET MVC 5项目中面临jQuery加载问题.我正在尝试加载部分视图,所以我已经使用过了
@ Html.Action("GetView","Home")
部分视图包含一些jQuery函数.当它加载时它显示jQuery未定义的消息,但jQuery正在主页上工作.
所以我尝试了另外两种方法来加载局部视图,并且没有使用这些方法的jQuery问题
@Html.Partial("_viewname")
@Ajax.BeginForm()
Run Code Online (Sandbox Code Playgroud)
家庭控制器
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
public ActionResult GetView(string id = "")
{
return PartialView("_ViewName");
}
}
Run Code Online (Sandbox Code Playgroud)
_Layout.cshtml
<!DOCTYPE html>
<html>
<head>
<title>@ViewBag.Title</title>
<meta name="viewport" content="initial-scale=1.0,maximum-scale=1.0,user-scalable=no">
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
@Scripts.Render("~/bundles/modernizr")
@RenderSection("Head", false)
</head>
<body>
<section >
<div>
@RenderBody()
</div>
<div>
@RenderSection("Sidebar", false)
</div>
</section>
<!-- jQuery -->
@Scripts.Render("~/bundles/jquery")
@RenderSection("Scripts", false)
</body>
Run Code Online (Sandbox Code Playgroud)
父页面Index.cshtml
@{
ViewBag.Title = "Admin";
}
<div id="main_content">
@Html.Action("GetView", "Packages") …
Run Code Online (Sandbox Code Playgroud) asp.net-mvc jquery asp.net-mvc-3 asp.net-mvc-4 asp.net-mvc-5
我在项目中使用Microsoft Azure SDK for Python.我想将Blob从一个容器移动或复制到另一个容器.例如
https://demostorage.blob.core.windows.net/image-container/pretty.jpg
Run Code Online (Sandbox Code Playgroud)
我想把这个blob移动到
https://demostorage.blob.core.windows.net/demo-container/
Run Code Online (Sandbox Code Playgroud)
我在python SDK中找到了以下方法但无法理解它.
def copy_blob(self, container_name, blob_name,...):
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?谢谢
如何在django查询中使用union和"not in"函数.我搜索过它但找不到任何例子
SELECT id,address
FROM tbl_nt
WHERE st_id IN (1,2) AND name = 'foo'
UNION (
SELECT d.id,d.addrses
FROM tbl_nt_123 d
WHERE d.name='foo' AND condition_id NOT IN (
SELECT condition_id
FROM tbl_conditions
WHERE version_id = 5
)
)
Run Code Online (Sandbox Code Playgroud)
我已尝试此查询较低的部分,但没有工作
tbl_nt_123.objects.values_list('id', 'address').exclude(
condition_id=tbl_conditions
).objects.filter(version_id=5).values_list(
'condition_id', flat=True)
)
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
请参考我一些好的链接或书籍,以了解提前django查询.
谢谢
我正在尝试为REST应用程序创建版本.这是我的URL Examle
www.myapi.com/foo [default version]
www.myapi.com/v1/foo [version one]
Run Code Online (Sandbox Code Playgroud)
这是项目结构
Run Code Online (Sandbox Code Playgroud)??? __init__.py ??? settings.py ??? urls.py ??? default_app ? ??? __init__.py ? ??? serializer.py ? ??? models.py ? ??? views.py ? ??? urls.py ? ??? v1_app ??? __init__.py ??? serializer.py ??? models.py ??? views.py ??? urls.py
default_app urls.py
from django.conf.urls import *
from default_app import views as df_views
from rest_framework import routers
router = routers.DefaultRouter()
router.register(r'foo', df_views.viewname, "foo")
urlpatterns = router.urls
Run Code Online (Sandbox Code Playgroud)
v1_app urls.py
from django.conf.urls import *
from v1_app import views …
Run Code Online (Sandbox Code Playgroud) 我正在ASP.NET MVC3中开发REST API应用程序.我试图让客户端客户端HOST名称在行动但不能成功.我在多个应用程序中使用此API,因此我想记录域名.
HttpContext.Current.Request.UserHostAddress;
System.Web.HttpContext.Current.Request.UserHostName;
System.Web.HttpContext.Current.Request.UserHostAddress;
Run Code Online (Sandbox Code Playgroud)
private string GetClientIp(HttpRequestMessage request)
{
if (request.Properties.ContainsKey("MS_HttpContext"))
{
return ((HttpContextWrapper)request.Properties["MS_HttpContext"]).Request.UserHostAddress;
}
else if (request.Properties.ContainsKey(RemoteEndpointMessageProperty.Name))
{
RemoteEndpointMessageProperty prop;
prop = (RemoteEndpointMessageProperty)request.Properties[RemoteEndpointMessageProperty.Name];
return prop.Address;
}
else
{
return null;
}
}
Run Code Online (Sandbox Code Playgroud)
所有这些选项提供IP地址,但我想获得主机名
API控制器 www.myapi.com
public class TESTController : ApiController
{
public TESTController()
{
}
[HttpGet]
public object Add(string data = "")
{
try
{
string result = "0";
if (!string.IsNullOrEmpty(data))
{
//should be www.myapiconsume.com
var host = System.Web.HttpContext.Current.Request.UserHostName;
var ip = System.Web.HttpContext.Current.Request.UserHostAddress;
}
return …
Run Code Online (Sandbox Code Playgroud) 我在c#中理解存储库模式.当我研究通用存储库模式时,我很困惑.它有很多重复.我对这种模式有一些疑问.
我使用实体框架代码第一种方法,我有两个模型类
学生
教师
如果我有一个通用接口,我将使用多少通用接口
public interface IRepository<TEntity>
{
IQueryable<TEntity> FindAll(Expression<Func<TEntity, bool>> where = null);
TEntity FindOne(Expression<Func<TEntity, bool>> where = null);
}
Run Code Online (Sandbox Code Playgroud)
因此,此接口可用于两个模型类.如果Student类有更多的方法可以定义这些方法?例如
public class StudentRepo<TEntity> : IRepository<TEntity> where TEntity : class
{
public virtual IQueryable<TEntity> FindAll(Expression<Func<TEntity, bool>> where = null)
{
return null != where ? Context.Set<TEntity>().Where(where) : Context.Set<TEntity>();
}
public virtual TEntity FindOne(Expression<Func<TEntity, bool>> where = null)
{
return FindAll(where).FirstOrDefault();
}
public void update()
{
}
public int FindId()
{
}
}
Run Code Online (Sandbox Code Playgroud)
所以我添加了两个新方法update()
,FindId() …