问题列表 - 第6279页

Django ORM:缓存和操作ForeignKey对象

考虑以下用于空间征服游戏的models.py骨架:

class Fleet(models.Model):
    game = models.ForeignKey(Game, related_name='planet_set')
    owner = models.ForeignKey(User, related_name='planet_set', null=True, blank=True)
    home = models.ForeignKey(Planet, related_name='departing_fleet_set')
    dest = models.ForeignKey(Planet, related_name='arriving_fleet_set')
    ships = models.IntegerField()

class Planet(models.Model):
    game = models.ForeignKey(Game, related_name='planet_set')
    owner = models.ForeignKey(User, related_name='planet_set', null=True, blank=True)
    name = models.CharField(max_length=250)
    ships = models.IntegerField()
Run Code Online (Sandbox Code Playgroud)

我正在研究的项目有很多这样的数据模型,我根据各种数据对象之间的复杂交互来改变游戏的状态.我想避免对数据库进行大量不必要的调用,因此每回合一次,我会做类似的事情

  1. 从数据库中查询所有车队,行星和其他对象,并将它们缓存为python对象
  2. 处理游戏对象,解决游戏状态
  3. 将它们保存回数据库中

使用ForeignKey对象时,此模型似乎完全崩溃.例如,当一支新舰队离开一颗行星时,我有一条看起来像这样的线:

fleet.home.ships -= fleet.ships
Run Code Online (Sandbox Code Playgroud)

在这条线路运行之后,我还有其他代码可以改变每个行星上的船只数量,包括行星舰队.遗憾的是,上述行中所做的更改并未反映在我之前获得的行星的QuerySet中,因此当我在转弯结束时保存所有行星时,对fleet.home船只的更改将被覆盖.

有没有更好的方法来处理这种情况?或者这就是所有ORM的方式?

django orm django-models django-orm

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

Rails处理单数/复数可能性的方法是什么?

当您向用户呈现涉及可能是单数或复数的实体的消息时,Rails有一个快捷方式来处理它.我在谈论这种情况:

"删除委员会?其X会议也将被删除."

Rails有一种方式可以使"会议"呈现为"会议"或"会议",具体取决于X.

我不记得那是什么方式.事实并非如此String#pluralize.

ruby ruby-on-rails

19
推荐指数
2
解决办法
9653
查看次数

服务器标签格式不正确

这太该死的愚蠢,但让我绝对发疯。

<input type="radio" name="OptGroup" id="<%#"rbEmail" + ((Action)Container.DataItem).ID %>" value="<%#((Action)Container.DataItem).ID %>" runat="server" /><label for="<%#"rbEmail" + ((Action)Container.DataItem).ID %>"><%#((Action)Container.DataItem).Action %></label>
Run Code Online (Sandbox Code Playgroud)

我在这里做错了什么!我也试过:

<input type="radio" name="OptGroup" id='<%#"rbEmail" + ((Action)Container.DataItem).ID %>' value='<%#((Action)Container.DataItem).ID %>' runat="server" /><label for='<%#"rbEmail" + ((Action)Container.DataItem).ID %>'><%#((Action)Container.DataItem).Action %></label>
Run Code Online (Sandbox Code Playgroud)

<input type="radio" name="OptGroup" id="<%#'rbEmail' + ((Action)Container.DataItem).ID %>" value="<%#((Action)Container.DataItem).ID %>" runat="server" /><label for="<%#'rbEmail' + ((Action)Container.DataItem).ID %>"><%#((Action)Container.DataItem).Action %></label>
Run Code Online (Sandbox Code Playgroud)

我特别不想使用 asp.net 单选按钮,因为它在中继器内创建的 GroupName 存在问题。我想使用一个单选按钮并将其值绑定到我的数据源。

asp.net

3
推荐指数
1
解决办法
4万
查看次数

无法上传超过5000 k大小的zip文件

我对C#更新鲜,我可以将文件上传到服务器,但是当我尝试上传超过5000k的大小时,它会给出异常.

这是我的C#代码

private void UploadFile(string filename)
{
  try
  {
    PeopleMatrixService peopleMetrixService = new PeopleMatrixService();

    String strFile = System.IO.Path.GetFileName(filename);
    // TestUploader.Uploader.FileUploader srv = new TestUploader.Uploader.FileUploader();
    FileInfo fInfo = new FileInfo(filename);
    long numBytes = fInfo.Length;
    double dLen = Convert.ToDouble(fInfo.Length / 10000000);
    if (dLen < 8)
    {
      FileStream fStream = new FileStream(filename, FileMode.Open, FileAccess.Read);
      BinaryReader br = new BinaryReader(fStream);
      byte[] data = br.ReadBytes((int)numBytes);
      br.Close();
      string sTmp = peopleMetrixService.UploadFile(data, strFile);
      fStream.Close();
      fStream.Dispose();
      MessageBox.Show("File Upload Status: " + sTmp, "File Upload");
    }
    else
    {
      MessageBox.Show("The …
Run Code Online (Sandbox Code Playgroud)

.net c# asp.net

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

在PHP中模拟命名函数参数,有什么好主意?

如果我编写这样的函数,可以在PHP中模拟命名函数参数

function pythonic(array $kwargs)
{
    extract($kwargs);
    // .. rest of the function body
}

// if params are optional or default values are required
function pythonic(array $kwargs = array('name'=>'Jon skeet'))
{
    extract($kwargs);
    // .. rest of the function body
}
Run Code Online (Sandbox Code Playgroud)

除了在IDE中失去intellisense之外,这种方法的其他可能缺点是什么?

编辑:

安全性:在这种情况下,安全性不应该是非问题,因为提取的变量仅限于功能范围吗?

php function named-parameters

20
推荐指数
3
解决办法
6961
查看次数

组合框中每个项目的工具提示

我只想为组合框中的每个项添加工具提示.我正在使用c#.net windows应用程序.

没有选择

combobox.items [1] .tooltip();

有没有办法添加工具提示呢?

.net combobox tooltip

19
推荐指数
3
解决办法
5万
查看次数

为什么浏览器文本在特定浏览器/机器上会更大?

在我制作的网站上,有人给我发了一个屏幕截图,显示我的字幕字体太大了.

  • 我用FF,IE6,IE7,IE8,Safari/win,opera/win检查了两台机器(Vista)上的网站.
  • 我可以增加浏览器的字体大小,但字幕保持相同的大小(因为它是8pt,如下所示)这是我想要的(因此它不会在徽标下延伸).
  • 它在http://browsershots.org上的34个浏览器屏幕截图中检查正常.

什么可能导致这个人的机器上的字体更大(Windows XP,IE7).他说"所有其他网站看起来都很好".是否有关于Windows XP的操作可以使操作更改浏览器中的字体大小等?或者Windows XP上的arial/italic可能存在问题?

这是它的CSS:

#subtitle {
    position: absolute;
    top: 78px;
    left: 40px;
    width: 738px;
    text-align: right;
    font-size: 8pt;
    font-style: italic;
    font-family: arial;
}
Run Code Online (Sandbox Code Playgroud)

回答:

我将"8pt"更改为"10px",现在适用于他.我假设他已经改变了他机器上的DPI.

html css

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

数据访问层

我们如何创建一个可以由任何使用不同数据源提供者或web服务的asp.net应用程序使用的通用数据访问层?

我们可以为使用Web服务的应用程序创建数据访问层吗?

c# asp.net

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

Access数据库引擎的优缺点.SQLite之后的生活

我刚才问过一个问题,关于哪个本地数据库适合我的情况.我需要从.NET代码和VB6访问数据库.压倒性的反应是SQLite.但是,我决定传递SQLite,因为它唯一的OLE DB提供商为我的软件的每个部署副本收取版税.它还需要在每台PC上运行激活程序.

在评估了其他选项(SQL Server Compact版本 - 几乎不起作用的OLE DB提供程序,Firebird - 不想为另一个驱动程序付费等等)之后,我得出结论,唯一可行的选择是使用.由Microsoft Access(或Jet引擎)创建的MDB文件.

我从90年代末就没有使用它,所以我对那些有经验的人有以下问题.

  1. 他们是否已经解决了数据库不时会损坏的问题.
  2. 是通过ADO.NET OLEDB Provider从c#访问MDB还是有本机解决方案(我似乎无法找到它).
  3. Access中真正糟糕的SQL编辑器是否有可行的替代方案?

谢谢.

c# vb6 ms-jet-ace

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

C程序出错

while(((long)(1000*ratio*((long)clock()-(long)t0))%100)/1000)<Data_Read_Rate);

上面的行生成以下错误:"<token"之前的语法错误.

为什么会出现这个错误?

我使用MINGW32进行开发(GCC编译器).

谢谢...

c gcc mingw

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