如何删除django中具有重复列的行

时间:2017-07-18 14:30:17

标签: mysql django

我有一个模特

        CreateMap<DomainClass, Child>();
        CreateMap<DomainClass, Parent>()
            .ForMember(d => d.Child, opt => opt.MapFrom(s => s));

我的数据是

class Foo(models.Model): 
     first = models.CharField()
     second = models.CharField()

现在我想删除所有重复的行并保留一个条目。最终结果

first second
1     2
1     2
1     2
3     4

我该怎么做?我检查了这个问题,但无法正确判断出来。 Annotate

我试过了

first second
1     2
3     4

然后尝试弄清楚如何不删除每个重复列表中的一个。

2 个答案:

答案 0 :(得分:1)

if (isset($_POST["message"]) && !empty($_POST["message"])) {

 $mymail=smtpmailer("email@gmail.com",$_POST['Email'], $_POST['Name'], $_POST[Subject],  $_POST['message']);


    function smtpmailer($to, $from, $from_name, $subject, $body) {
$mail->Body = "print here the options that the user selected"

你可以试试这个

答案 1 :(得分:0)

我最终这样做了。

from django.db.models import Count
duplicate_foo = Foo.objects.values('req_group','child_program__id').annotate(id_c=Count('id')).filter(id_c__gt=1)
for dups in duplicate_foo:
    for i, val in enumerate(Foo.objects.filter(first=dups['first'],                                                      
                                               second=dups['second'])):
        if i ==0:
            continue
        val.delete()

不是最优化的解决方案。但它的确有效。