问题列表 - 第17498页

Django:与Contenttypes的通用一对多关系

我正在努力使以下适合Django ORM.拥有Publish管理不同类型内容(其他模型)的出版物的模型.这样我就可以轻松地Publish.objects.all()按日期订购.我制作了一个通用模型如下:

class Publish(models.Model):
    """ Intermediary model for displaying and managing different types of content """
    status = models.IntegerField(_('status'), choices=STATUS_CHOICES, default=1)
    publish = models.DateTimeField(_('publish'), default=datetime.datetime.now)

    content_type = models.ForeignKey(ContentType)
    object_id = models.PositiveIntegerField()
    content_object = generic.GenericForeignKey('content_type', 'object_id')
Run Code Online (Sandbox Code Playgroud)

问题是我想将它附加到不同的模型.这必须是一种OneToMany关系.因为一篇文章只能有一个出版日期.据我所知,一般关系是一种ManyToMany关系.

我试过在admin.py中限制max_numextrain GenericTabularInline,但这不是一个很好的工作解决方案.有谁知道如何将发布模型附加到几个不同的模型,使其成为一个必需的,一对多的关系?许多是Publish模型,一个是ex.一篇文章.

generics django

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

$ PHP中的这个变量

我刚刚开始熟悉PHP的OO功能,我想问你关于$this变量的一些事情.首先,如果我使用$this关键字in 的类没有已定义的属性变量foo,这是否意味着使用以下代码:

$this->foo = 5;
echo $this->foo;
Run Code Online (Sandbox Code Playgroud)

foo在运行时在对象上创建属性,就像在JavaScript中一样?这个属性的知名度是多少?

php oop

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

使用优先级聚合SQL行

我有一张桌子,里面摆满了不同来源的物品.一些来源可能具有相同的位置(在我的示例中,不同的BBC新闻源将是不同的来源,但它们都来自BBC).每个项目都有一个"唯一"ID,可用于从同一位置识别它.这意味着与网站上相同新闻报道相关但在不同Feed下发布的项目将具有相同的"唯一ID",但这不一定是全球唯一的.

问题是我希望在显示时删除重复项,以便(根据您看到的哪些Feed)您最多只能获得每个故事的一个版本,即使您的两个或三个Feed可能包含指向它的链接.

我有一个sources表格,其中包含有关每个来源location_idlocation_precedence字段的信息.然后,我有一个items包含每个项目,它的表unique_id,source_idcontent.具有相同unique_id和来源的项目location_id最多应出现一次,最高来源location_precedence获胜.

我原以为是这样的:

SELECT `sources`.`name` AS `source`,
       `items`.`content`,
       `items`.`published`
FROM `items` INNER JOIN `sources`
  ON `items`.`source_id` = `sources`.`id` AND `sources`.`active` = 1
GROUP BY `items`.`unique_id`, `sources`.`location_id`
ORDER BY `sources`.`location_priority` DESC
Run Code Online (Sandbox Code Playgroud)

会做的伎俩,但似乎忽略了位置优先级字段.我错过了什么?


示例数据:

CREATE TABLE IF NOT EXISTS `sources` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `location_id` int(10) unsigned NOT NULL,
  `location_priority` int(11) NOT NULL,
  `active` tinyint(1) unsigned NOT NULL …
Run Code Online (Sandbox Code Playgroud)

mysql sql group-by aggregation

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

从php日期获取类似"Ymd H:i:s"的日期格式

有人知道从包含日期格式的日期获取字符串的方法吗?

<?php
    $date = date ("2009-10-16 21:30:45");

    // smething like this?
    print date_format ($date);
?>
Run Code Online (Sandbox Code Playgroud)

我问这个是因为我想优化我写的这个函数,通常是为了从服务器获取与时区不同的日期,而不做特定的事情

<?php
function get_timezone_offset ($timezone, $date = null, $format = null, $offset_timezone = null) {
    if ($date == null) $date = date ($format);
    if ($offset_timezone == null) $offset_timezone = date_default_timezone_get ();
    if ($format == null) $format = "Y-m-d H:i:s";
    // I'd like to find a way that can avoid me to write $format and get it directly from the date i pass, but I don't …
Run Code Online (Sandbox Code Playgroud)

php format datetime date date-format

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

开发Penlets的技巧

最后,我有时间做一些有趣的项目.我想为我的新Livescripe Pulse智能笔写一些应用程序.

有没有人在那里写过类似的东西?你有任何关于初学者或有用链接的提示吗?我找不到小贩的网站了!

java pen java-me livescribe

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

WriteableBitmap上的异步操作

我正在用WPF(C#)编写一个应用程序,它对一组Bitmaps进行长时间的操作.为了保持我的应用程序响应,我决定使用另一个线程来执行位图操作并报告主UI线程中进度条的进度.我认为BackgroundWorker会为我做任何事情,但看起来不会那么容易.

我有以下代码:

public class ImageProcessor
{
    public Collection<WriteableBitmap> Pictures { get; private set; }
    private BackgroundWorker _worker = new BackgroundWorker();

    public ImageProcessor()
    {
        _worker.DoWork += DoWork;
    }

    public void DoLotsOfOperations()
    {
        _worker.RunWorkerAsync();
    }

    private void DoWork(object sender, DoWorkEventArgs e)
    {
        // operations on Pictures collection
    }
}
Run Code Online (Sandbox Code Playgroud)

在运行时,我使用标准打开文件对话框将图像加载到Pictures集合中,然后调用DoLotsOfOperations()方法.但是当我尝试访问单个位图的任何属性时,我得到InvalidOperationException:"调用线程无法访问该对象,因为不同的线程拥有它".

这是真的 - 我加载了位图并在UI线程中填充了集合,我尝试在另一个线程中读取集合元素.所以我尝试了不同的方法:

  • 我将整个集合作为RunWorkerAsync方法的参数传递,并从e.Argument中将其返回到DoWork方法中,但是当我尝试读取单个位图的属性时,我仍然得到了相同的异常.
  • 我尝试了同样的事情,这次将一个位图作为backgroundworker的参数传递,但仍然无法得到任何位图的属性,更不用说位图的像素了.

那么如何在另一个线程中访问位图的数据(最好是使用BackgroundWorker)?

我不知道,也许我的整个方法都是错的.我想要实现的一般想法是:

  1. 用户加载位图然后显示在窗口中.
  2. 用户单击按钮并执行位图上的长操作,但UI响应(例如,允许用户取消操作),并在progess栏上报告进度.

在此先感谢您的帮助.

c# multithreading asynchronous writeablebitmap

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

Java:如何使用不同的equals定义执行列表操作?

Java:如何使用不同的equals定义执行列表操作?

我有两个通用POJO列表.我需要根据比较列表中POJO的不同方法在列表上执行一些设置操作.

例如,如果我的POJO具有以下结构:

public class GenericPojo {
    private String id;
    private String address;
    private String city;
    private String country;
    private String extraDetails;
}
Run Code Online (Sandbox Code Playgroud)

(与适当的吸气剂和制定者)

鉴于List1<GenericPojo>List2<GenericPojo>,我将如何找到:

List1 - List2(GenericPojo如果ID相等,则类相等)

列表1和列表2的相交(其中id,address,city,country,但不是extraDetailsGenericPojo相等)

这里有两种不同的自定义比较器类吗?是否有任何库可以有效地处理这些操作,或者我应该尝试实现自己的操作?

java list comparator

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

从Python调用Java代码的最佳方法是什么?

我有一个Java类库(第三方,专有),我希望我的python脚本调用它的函数.我已经有了使用这个库的java代码.实现这一目标的最佳方法是什么?

python java

12
推荐指数
2
解决办法
8032
查看次数

在处理许多不相关的类型时避免样板

我正在编写处理来自Language.Exts.Annotated.Syntax的值的代码,其中定义了各种类型的镜像Haskell模块的结构:

data Module l = ...
data Decl l = ...
data Exp t = ...
-- etc
Run Code Online (Sandbox Code Playgroud)

我希望能够编写处理这些数据结构并对它们执行各种转换的函数.因为没有一种常见的数据类型,所以我无法编写一个可以完成所有操作的函数.

到目前为止,我已经编写了一个Tree包装这些类型的类型,以便我的转换函数可以执行Tree l -> Tree l:

data Tree l = ModuleT (Module l)
            | DeclT (Decl l)
            | ExpT (Exp l)
            -- etc copy & paste
Run Code Online (Sandbox Code Playgroud)

但是我现在发现自己编写了很多代码,需要Module包含它ModuleT,包装它,调用函数,然后再将结果重新打包Module.我有:

class AnnotatedTree ast where
  tree :: ast l -> Tree l
  untree :: Tree l -> ast l

instance AnnotatedTree Module where
  tree …
Run Code Online (Sandbox Code Playgroud)

haskell generic-programming

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

从地理坐标获取时区的算法

我想写应用程序,用户可以在地图上指向任何地方(不仅是城市),并在该地点获取时区.

我应该使用什么数据结构(应用程序不具备Internet连接)和算法?在哪里我可以获得所需的数据(我不会更精确,然后将地图分成24个矩形)?

我将在Java ME中编写我的应用程序.

java language-agnostic algorithm timezone java-me

11
推荐指数
2
解决办法
5667
查看次数