【问题标题】:how to display the latest updated records in table -Django如何在表中显示最新更新的记录-Django
【发布时间】:2021-02-17 08:06:20
【问题描述】:

我在模板文件中有一个表,我正在使用 .xls 文件更新数据。

任何人都可以帮助我如何通过一些提示(或通过添加另一列)显示最新添加的记录如何区分哪些是更新的记录,哪些是更新的记录是新添加的记录吗?

下面是我上传数据的逻辑代码。

import time
import simplejson as json
count = [ ]  ##Global variable
lap =[]
from datetime import datetime
def CTA_upload(request):
    lap.clear()
    i = 1
    print('Counter value at starting::::::::: :', len(count))
    allcta = CTA.objects.all()
    allcta = allcta.filter(Shift_timing__exact='Morning')
    allcta7 = 50
    now = datetime.now()
    current_time = now.strftime("%H:%M:%S")
    # start = '06:30:00'
    # end = '15:30:00'
    print('Current Time:',current_time)
    try:
        if current_time > '06:30:00' and current_time < '23:59:59':
            if len(count) <= allcta7:
                if request.method == 'POST':
                    movie_resource = CTaResource()
                    print('movie_resource', movie_resource)
                    ##we will get data in movie_resources####
                    dataset = Dataset()
                    print('Dataset ka Type', dataset)
                    new_movie = request.FILES['file']
                    if not new_movie.name.endswith('xls'):
                        messages.info(request, 'Sorry Wrong File Format.Please Upload valid format')
                        return render(request, 'app/uploadcta.html')
                    messages.info(request, 'Starting...')
                    imported_data = dataset.load(new_movie.read(), format='xls')
                    print('abcdefghijk:', type(imported_data))
                    messages.info(request, 'Checking File content)')
                    for data in imported_data:
                        print('data2',data[1])
                        datax=data[1]
                        if data[1] != '' :
                            value = CTA(
                                data[0], data[1], data[2], data[3], data[4], data[5], data[6], data[7], data[8],
                            )
                            if len(count) <= allcta7:
                                value.save()
                                i = i + 1
                                count.append(i)
                                print('Count After Saving Value:', count)
                                ldap.insert(1, datax)
                                print('Ldap ID is:', ldap)
                                print('Testing')
                        else:
                            if data[1] == '':
                                messages.info(request,
                                              'Please Make Sure AppConnect field value should not be blank. OR')
                            break
                    else:
                        messages.info(request, 'File Processing')
                        messages.success(request, ". . . . .")
                        logger.info('Data present in CTA upload file:  %s !', imported_data)

                        messages.info(request, 'File is Uploded successfully')

            
                    return render(request, 'app/uploadcta.html', {'lap': imported_data})

                        # return render(request, 'apple/wrongtime.html')
        else:
            messages.info(request, 'Sorry,File Upload is not allowed')
        
            # return render(request, 'app/wrongtime.html')
    except:
        messages.info(request,'Please Make sure Email field should be unique.')
        

    return render(request,'app/uploadcta.html')

Que:我如何使用 message.info 打印内容,例如,如果我将使用 messages.info(request, '文件上传成功')

我会得到输出:文件上传成功

有什么方法可以传递内容,就像我们传递渲染一样

示例:返回渲染(请求,'app/uploadcta.html',{'lap':imported_data})

【问题讨论】:

    标签: django django-models django-views


    【解决方案1】:

    @Shailesh - 这种方法怎么样 如何区分哪些是更新记录,哪些是新增记录? 将这两个字段添加到模型中怎么样?

    created_at = models.DateTimeField(auto_now_add=True)
    modified_at = models.DateTimeField(auto_now_add=True)
    

    创建记录时,created_at 和 modified_at 将具有相同的值 并且当更新记录时,modified_at 应该会更改,但 created_at 将是插入记录的日期。

    【讨论】:

    • 谢谢!我已经尝试过 created_at = models.DateTimeField(auto_now_add=True) 但为此我无法从 .xls 文件上传数据。(当我从管理员上传时它工作正常)。如果我将使用 modified_at = models.DateTimeField(auto_now=True) 那么它在 .xls 和 admin 中工作正常。(auto_now 在这里我只会在上次更新时得到)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-20
    • 1970-01-01
    • 2013-02-02
    • 1970-01-01
    相关资源
    最近更新 更多